

public static void insert_sort(int array[],int lenth){int temp;for(int i=0;i<lenth-1;i++){for(int j=i+1;j>0;j--){if(array[j]<array[j-1]){temp=array[j-1];array[j-1]=array[j];array[j]=temp;}else{ //不需要交换break;}}}}

public static void shell_sort(int array[],int lenth){int temp = 0;int incre = lenth;while(true){incre = incre/2;for(int k = 0;k<incre;k++){ //根据增量分为若干子序列for(int i=k+incre;i<lenth;i+=incre){for(int j=i;j>k;j-=incre){if(array[j]<array[j-incre]){temp = array[j-incre];array[j-incre] = array[j];array[j] = temp;}else{break;}}}}if(incre == 1){break;}}}
数组:72 - 6 - 57 - 88 - 60 - 42 - 83 - 73 - 48 - 850 1 2 3 4 5 6 7 8 9
数组:48 - 6 - 57 - 88 - 60 - 42 - 83 - 73 - 88 - 850 1 2 3 4 5 6 7 8 9
数组:48 - 6 - 57 - 42 - 60 - 72 - 83 - 73 - 88 - 850 1 2 3 4 5 6 7 8 9
public static void quickSort(int a[],int l,int r){if(l>=r)return;int i = l; int j = r; int key = a[l];//选择第一个数为keywhile(i<j){while(i<j && a[j]>=key)//从右向左找第一个小于key的值j--;if(i<j){a[i] = a[j];i++;}while(i<j && a[i]<key)//从左向右找第一个大于key的值i++;if(i<j){a[j] = a[i];j--;}}//i == ja[i] = key;quickSort(a, l, i-1);//递归调用quickSort(a, i+1, r);//递归调用}

更多的内容请访问:https://blog.breakpoint.vip/
喜欢就在看吧!!!
文章转载自两个菜鸟程序猿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




