package none001;
//选择排序和冒泡排序执行了相同的比较次数,但是,选择排序无疑比冒泡排序快很多,因为他执行的交换次数少于冒泡排序,但时间复杂度都为O(N^2)
//本质,内层循环找出最小值并与数组左边的交换,外层循环进行数组从左到右排序,从小到大排序。
public class SelectSortApp {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArraySelect 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();
}
}
选择排序本质:内层循环找出最小值并与数组左边的交换,外层循环进行数组从左到右排序,从小到大排序。
最新推荐文章于 2023-09-18 03:56:34 发布