Java数组排序总结(冒泡,选择,插入,希尔)递归算法的复杂度.doc
文本预览下载声明
Java数组排序总结(冒泡,选择,插入,希尔)
public?class?SortAll?{??????/**????*?冒泡排序,选择排序,插入排序,希尔(Shell)排序?Java的实现?????*?2008.11.09????*?@author?YangL.?()????*/???public?static?void?main(String[]?args)?{?????int[]?i?=?{?1,?5,?6,?12,?4,?9,?3,?23,?39,?403,?596,?87?};?????System.out.println(----冒泡排序的结果:);?????maoPao(i);?????System.out.println();?????System.out.println(----选择排序的结果:);?????xuanZe(i);?????System.out.println();?????System.out.println(----插入排序的结果:);?????chaRu(i);?????System.out.println();?????System.out.println(----希尔(Shell)排序的结果:);?????shell(i);????}??????//?冒泡排序????public?static?void?maoPao(int[]?x)?{?????for?(int?i?=?0;?i??x.length;?i++)?{??????for?(int?j?=?i?+?1;?j??x.length;?j++)?{???????if?(x[i]??x[j])?{????????int?temp?=?x[i];????????x[i]?=?x[j];????????x[j]?=?temp;???????}??????}?????}?????for?(int?i?:?x)?{??????System.out.print(i?+??);?????}????}??????//?选择排序????public?static?void?xuanZe(int[]?x)?{?????for?(int?i?=?0;?i??x.length;?i++)?{??????int?lowerIndex?=?i;??????//?找出最小的一个索引??????for?(int?j?=?i?+?1;?j??x.length;?j++)?{???????if?(x[j]??x[lowerIndex])?{????????lowerIndex?=?j;???????}??????}??????//?交换??????int?temp?=?x[i];??????x[i]?=?x[lowerIndex];??????x[lowerIndex]?=?temp;?????}?????for?(int?i?:?x)?{??????System.out.print(i?+??);?????}????}??????//?插入排序????public?static?void?chaRu(int[]?x)?{?????for?(int?i?=?1;?i??x.length;?i++)?{//?i从一开始,因为第一个数已经是排好序的啦??????for?(int?j?=?i;?j??0;?j--)?{???????if?(x[j]??x[j?-?1])?{????????int?temp?=?x[j];????????x[j]?=?x[j?-?1];????????x[j?-?1]?=?temp;???????}??????}?????}?????for?(int?i?:?x)?{??????System.out.print(i?+??);?????}????}??????//?希尔排序????public?static?void?shell(int[]?x)?{?????//?分组?????for?(int?increment?=?x.length?/?2;?increment??0;?increment?/=?2)?{??????//?每个组内排序??????for?(int?i?=?increment;?i??x.length;?i++)?{???????int?temp?=?x[i];???????int?j?=?0;???????for?(j?=?i;?j?=?increment;?j?-=?increment)?{????????if?(temp??x[j?-?increme
显示全部