public class paixu { /**历数组,遍历到i时,a0,a1...ai-1是已经排好序的,取出ai,从ai-1开始向前和每个比较大小, * 如果小于,则将此位置元素向后移动,继续先前比较,如果不小于,则放到正在比较的元素之后。**/ public static void 插入排序(int a[],int n) { int i,j,k; for(i=0;i<n;i++) { for (k = a[i], j = i - 1; j >= 0 && k < a[j]; j--) a[j + 1] = a[j]; a[j + 1] = k; } } /** 遍历数组,遍历到i时,a0,a1...ai-1是已经排好序的,然后从i到n选择出最小的, * 记录下位置,如果不是第i个,则和第i个元素交换。**/ public static void 选择排序(int a[],int n) { int i,j,pos,tmp; for(i=0;i<n-1;i++) { for(pos=i,j=i+1;j<n;j++) { if(a[pos]>a[j]) pos=j; } if(pos!=i) { tmp=a[i]; a[i]=a[pos]; a[pos]=tmp; } } } public static void 冒泡排序(int a[],int n) { int i,j,tmp,l; for(j=n-1;j>0;j=l) { l=0; for(i=0;i<j;i++) { if(a[i]>a[i+1]) { tmp=a[i]; a[i]=a[i+1]; a[i+1]=tmp; l=i; } } } } public static void 快速排序(int a[],int n) { } public static void print(int a[],int n) { for(int i=0;i<n;i++) { System.out.print(a[i]+" "); } } public static void main(String args[]) { int a[]={23,52,63,12,423,51}; int len=a.length; 选择排序(a,len); print(a,len); } }
排序算法
最新推荐文章于 2024-03-10 19:50:01 发布