簡單排序之冒泡排序,選擇排序,插入排序
1.冒泡排序,運行時間O(N^2)(N^2次比較,N^2次交換)
public void sort(){
int in,out;
for(out=nElems-1;out<1;out--){
for(in=0;in<out;in++){
if(a[in]>a[i+1]){
swap(in,in+1);
}
}
}
}
2.選擇排序,運行時間O(N^2)(N^2次比較,N次交換)—–更快
public void selectSort(){
int in,out,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(min,out);
}
}
3.插入排序,運行時間O(N^2)—–數組基本有序時更更快
public void insertSort(){
int in,out;
for(out=1;out<nElems;out++){
long temp=a[out];
in=out;
while(in>0&&a[in]>=temp){
a[in]=a[in-1];
--in;
}
a[in]=temp;
}
}