[基础算法复习]冒泡排序和选择排序

[基础算法复习]冒泡排序和选择排序

选择排序和冒泡排序很相似,时间复杂度相同,选择排序性能上要优于冒泡,一次选择过程中只交换一次,比较次数和冒泡相同。

冒泡排序:
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 ;
}


你可能感兴趣的:([基础算法复习]冒泡排序和选择排序)