简单排序之冒泡排序,选择排序,插入排序
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;
}
}