选择排序本质:内层循环找出最小值并与数组左边的交换,外层循环进行数组从左到右排序,从小到大排序。

来源:互联网 发布:ps4应用程序数据损坏 编辑:程序博客网 时间:2024/05/01 17:28
package none001;//选择排序和冒泡排序执行了相同的比较次数,但是,选择排序无疑比冒泡排序快很多,因为他执行的交换次数少于冒泡排序,但时间复杂度都为O(N^2)//本质,内层循环找出最小值并与数组左边的交换,外层循环进行数组从左到右排序,从小到大排序。public class SelectSortApp {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubArraySelect ab=new ArraySelect(10002);   ab.insert(77);       ab.insert(99);       ab.insert(66);       ab.insert(44);       ab.insert(55);       ab.insert(22);       ab.insert(88);       ab.insert(11);       ab.insert(0);       ab.insert(66);       ab.insert(33);       ab.display();       ab.SelectSort();       ab.display();           }}class ArraySelect{    int items;long[] array;ArraySelect(int max){this.items=0;array=new long[max];}public void insert(long value){array[items]=value;items++;}public void SelectSort(){ int i,j,k; for(i=0;i<items-1;i++){ k=i; for(j=i+1;j<items;j++)  if(array[j]<array[k])  k=j; if(i!=k){ array[i]^=array[k]; array[k]^=array[i]; array[i]^=array[k]; } }}public void display(){for(int i=0;i<items;i++){System.out.print(array[i]+" ");}System.out.println();}}

0 0
原创粉丝点击