您的位置:首页 > 其它

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

2014-04-12 15:48 302 查看
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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐