本文整理自网络,侵删。
最近自己闲着没事,写了一些排序算法,有兴趣的来看看吧,不过我没有做具体的优化,不过测试了一下性能凑合事吧 !
//冒泡排序,delphi语言版本procedure BubbleSort(var int: array of integer);var temp: Integer; I, j: Integer; swap: Boolean;begin for I := 0 to Length(int) - 2 do begin swap := False; for j := Length(int) - 1 downto Succ(i) do begin if int[j] > int[j - 1] then begin temp := int[j]; int[j] := int[j - 1]; int[j - 1] := temp; swap := True; end; end; if not swap then Exit; end;end;
//冒泡排序java版本 public static void BubbleSort(int[] intArray) { int temp; boolean Swap; for (int i=0;i<intArray.length-1;i ) { Swap=false; for (int j=intArray.length-1;j>i;j--) { if (intArray[j]>intArray[j-1]) { temp=intArray[j]; intArray[j]=intArray[j-1]; intArray[j-1]=temp; Swap=true; } } if (!Swap) break; } }
//选择排序delphi版本procedure SelectionSort(var int: array of Integer);var I: Integer; indexOfMin: Integer; j: Integer; temp: Integer;begin for I := 0 to Length(int) - 2 do begin indexOfMin := i; for j := i 1 to Length(int) - 1 do begin if int[j] < int[indexOfMin] then begin indexOfMin := j; end; end; if indexofMin <> i then begin temp := int[i]; int[i] := int[indexOfMin]; int[indexOfMin] := temp; end; end;end;
//选择排序 public static void SelectionSort(int[] intArray) { int indexOfMin; int temp; for (int i=0;i<intArray.length-1;i ) { indexOfMin=i; for (int j=i 1;j<intArray.length;j ) { if (intArray[j]<intArray[indexOfMin]) { indexOfMin=j; } } if (indexOfMin!=i) { temp=intArray[i]; intArray[i]=intArray[indexOfMin]; intArray[indexOfMin]=temp; } } }
//插入排序delphi版procedure InsertSort(var int: array of Integer);var I: Integer; Temp: Integer; M: Integer;begin for I := 1 to Length(int) - 1 do begin Temp := int[i]; M := i; while ((M > 0) and (Temp < int[M - 1])) do begin int[m] := int[m - 1]; Dec(m); end; int[M] := Temp; end;end;//插入排序delphi改进版procedure InsertSort1(var int:array of Integer);var indexOfMin:Integer; temp:Integer; I,j: Integer;begin indexOfMin :=0; ////////////找到数组中最小的元素//////////// for I := 1 to Length(int) - 1 do begin if int[i]<int[indexOfMin] then begin indexOfMin:=i; end; end; if indexOfMin<>0 then begin temp:=int[0]; int[0]:=int[indexOfMin]; int[indexOfMin]:=temp; end; for I := 2 to Length(int) - 1 do begin temp:=int[i]; j:=i; while temp<int[j-1] do begin int[j]:=int[j-1]; Dec(j); end; int[j]:=temp; end; end;
//插入排序 java版 public static void InsertSort(int[] intArray) { int temp; int m; for (int i=1;i<intArray.length;i ) { temp=intArray[i]; m=i; while ((m>0)&&(temp<intArray[m-1])) { intArray[m]=intArray[m-1]; m--; } intArray[m]=temp; } } //插入排序--优化 public static void InsertSort1(int[] intArray) { int indexOfMin=0; int temp; int j; for (int i=1;i<intArray.length;i ) { if (intArray[i]<intArray[indexOfMin]) { indexOfMin=i; } } if (indexOfMin!=0) { temp=intArray[0]; intArray[0]=intArray[indexOfMin]; intArray[indexOfMin]=temp; } for (int i=2;i<intArray.length;i ) { temp=intArray[i]; j=i; while (temp<intArray[j-1]) { intArray[j]=intArray[j-1]; j--; } intArray[j]=temp; } }
相关阅读 >>
Delphi的idhttp报508 loop detected错误的原因
Delphi 获取适合微信使用的当前日期,以int64表示,是当前时间和1970-01-01 00:00:00之间的秒差
Delphi xe 中的字符串生成哈希值(md5 / sha-1 / jenkins)
更多相关阅读请进入《Delphi》频道 >>