您的位置:首页 > 编程语言 > Java开发

java选择排序

2016-08-03 14:12 127 查看
public class ArraySel {
private long[] a;
private int nElems;
public ArraySel(int max){
a = new long[max];
nElems = 0;
}
public void insert(long value){
a[nElems] = value;
nElems++;
}
public void display(){
for(int i = 0;i<nElems;i++){
System.out.print(a[i]+" ");
}
System.out.println("");
}
public void selectionSort(){
int out,in,min;
for(out=0;out<nElems-1;out++){
min=out;
for(in=out+1;in<nElems;in++){
if(a[in]<a[min])
min=in;
}
swap(out,min);
}
}
private void swap(int one,int two){
long temp = a[one];
a[one] = a[two];
a[two] = temp;
}
}


public class SelectSortApp {
public static void main(String[] args) {
int maxSize = 100;
ArraySel arr = new ArraySel(maxSize);
arr.insert(23);
arr.insert(56);
arr.insert(657);
arr.insert(134);
arr.insert(45);
arr.insert(536);
arr.insert(825);
arr.insert(24);
arr.insert(687);
arr.insert(139);
arr.display();
arr.selectionSort();
arr.display();
}
}


23 56 657 134 45 536 825 24 687 139
23 24 45 56 134 139 536 657 687 825


选择排序和冒泡排序执行了相同次数的比较,N*(N-1)/2,10个数据项,45此比较,但是少于10次交换。

当交换的时间比比较的时间大的多时,选择排序更快。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: