首页 > 编程语言 > 详细

排序算法 先放这里 下次再整理

时间:2015-11-19 20:50:58      阅读:286      评论:0      收藏:0      [点我收藏+]
var
	num: array of Integer;    // 打比方  array里记录的是[5, 3, 2, 4, 1]   =>要的到的结果为[1, 2, 3, 4, 5]
	i: Integer = 1;           // i记录要比较数的位置
	{首先明白字符串,比如‘12345‘  要得到1那么就是s[1], 取5那么就是s[5] , 取数组跟取字符串一样 那么就需要取出每位数字比较}
{$R *.fmx}

procedure TForm2.Button1Click(Sender: TObject);
var
	l, j, k, n: Integer;
begin
	for l := 1 to i - 1 do           // 这个是比较的总次数,如果有四位数则只比较3次
	begin
		k := i - l;                    // k记录比较的那个数的前一个数的位置 比如 现在比较的是最后一位1,那么当时的k就是倒数第二位4的位置
		for j := 1 to k do             // j记录从字符串第一个到比较的数的前两位的位置,一直循环
		begin
			if (num[j] < num[j + 1]) then  //  这里面就是比较的内容啦   如果前一位小于后一位
			begin
				n := num[j];                // 则n 为小的那位数
				num[j] := num[j + 1];       // 此时,小的那位数存放下一位数
				num[j + 1] := n;            // 下一位数存放小的那位数,这样顺序就调过来了
			end;                          // 一直循环,直到比较完位置。
		end;
	end;
	Label1.text := ‘‘;                   
	for l := i - 1 downto 1 do
		Label1.text := Label1.text + inttostr(num[l]) + ‘ ‘;   //输出
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
	Label1.Text := Label1.Text + ‘ ‘ + Edit1.text;
	num[i] := strtoint(Edit1.text);
	i := i + 1;
	Edit1.text := ‘‘;
	Edit2.text := inttostr(i);
end;

 

var
    a:array[1..4] of integer;
    i, j, temp, n:integer;
begin
   read(n);
   for i := 1 to n do read(a[i]);
   for i := 1 to n do
       for j := 1 to n-i do
           if a[j] > a[j + 1] then
               begin
                   temp := a[j];
                   a[j] := a[j + 1];
                   a[j+1] := temp;
               end;
    for i:= 1 to n do write(a[i]);
end;

 

排序算法 先放这里 下次再整理

原文:http://www.cnblogs.com/studypanp/p/4978946.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!