c++ 歸併排序



void merge(int array,int L;int mid; int R){
   int p1 = L,p2 = mid+1, i=0;
   int temp[L+R-1];

   while (p1<mid && p2<R){

       temp[i++] = array[p1] <  array[p2] ? array[p1++] : array[p2++];

   }
   while (p1<mid){
      temp[i++] =  array[p1++];
   }
   
     while (p2<R){
      temp[i++] =  array[p2++];
   }

   for (int i =0; i< R+L-1;i++){
       array[L+i] = temp[i];
   }

}

void sort(int array[], int L,int R){

   if (L<R){
        int mid = (L+R)/2;
        sort(array,L,mid);
        sort(array,mid+1,R);
        merge (array,L,mid,R);
   }
    
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章