选择排序和冒泡排序很相似,时间复杂度相同,选择排序性能上要优于冒泡,一次选择过程中只交换一次,比较次数和冒泡相同。
冒泡排序:
int bubble_sort(int *array,int begin,int end)
{
if(array==NULL||begin>end) return 0;
int i,j;
for(i=end;i>begin;--i){
for(j=begin;j<i;++j){
if( array[j]>array[j+1] ){
int tmp = array[j];
array[j] = array[j+1];
array[j+1] = tmp;
}
}
}
return 1;
}
选择排序:
int select_sort(int *array,int begin,int end) {
if(array==NULL||begin>end) return 0;
int i,j,largest,tmp;
for(i=end;i>begin;--i){
largest = i;
for(j=begin;j<=i;++j){
if( array[largest]<array[j] )
largest = j;
}
tmp = array[i];
array[i] = array[largest];
array[largest] = tmp;
}
return 1;
}