【文件属性】:
文件名称:数组常见排序
文件大小:46KB
文件格式:DOC
更新时间:2022-05-10 12:52:50
数据结构
常用数组排序算法
1.
2.
3.publicclassSortAll{
4.
5./**
6.*冒泡排序,选择排序,插入排序,希尔(Shell),快速排序排序Java的实现
*/
7.publicstaticvoidmain(String[]args){
8.int[]i={1,5,6,12,4,9,3,23,39,403,596,87};
9.System.out.println("----冒泡排序的结果:");
10.maoPao(i);
11.System.out.println();
12.System.out.println("----选择排序的结果:");
13.xuanZe(i);
14.System.out.println();
15.System.out.println("----插入排序的结果:");
16.chaRu(i);
17.System.out.println();
18.System.out.println("----希尔(Shell)排序的结果:");
19.shell(i);
20.}
21.
// 冒泡排序
1.publicstaticvoidmaoPao(int[]x){
2.for(inti=0;ix[j]){
5.inttemp=x[i];
6.x[i]=x[j];
7.x[j]=temp;
8.}
9.}
10.}
11.for(inti:x){
12.System.out.print(i+"");
13.}
14.}
// 选择排序
1.publicstaticvoidxuanZe(int[]x){
2.for(inti=0;i0;j--){
24.if(x[j]0;increment/=2){
4.//每个组内排序
5.for(inti=increment;i=increment;j-=increment){
9.if(temp=hi)
7.return;
8.
9.//确定指针方向的逻辑变量
10.booleantransfer=true;
11.
12.while(lo!=hi){
13.if(a[lo]>a[hi]){
14.//交换数字
15.inttemp=a[lo];
16.a[lo]=a[hi];
17.a[hi]=temp;
18.//决定下标移动,还是上标移动
19.transfer=(transfer==true)?false:true;
20.}
21.
22.//将指针向前或者向后移动
23.if(transfer)
24.hi--;
25.else
26.lo++;
27.
28.}
29.
30.//将数组分开两半,确定每个数字的正确位置
31.lo--;
32.hi++;
33.quickSort(a,lo0,lo);
34.quickSort(a,hi,hi0);
35.}