冒泡排序算法
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;