選擇排序和冒泡排序很相似,時間復雜度相同,選擇排序性能上要優于冒泡,一次選擇過程中只交換一次,比較次數和冒泡相同。
冒泡排序:
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;
}