三種快速排序法

2022-09-23 08:48:10 字數 723 閱讀 3459

/*交換函式:為了提高效率,當所交換的兩個元素值不相等時,用異或運算*/

void swap(int *a, int *b)

else

}/*第一種快排:只有乙個長度n,每次需計算出low和high指標*/

int quicksort_process1(int *a, int n)

a[high] = temp;

return high;

}void quicksort1(int *a,int n)

}/*第二種快排:有兩個指標,乙個快,乙個慢。快的指標找比基元素小的數,慢的指標指向比基元素小的最後乙個元素*/

/*這樣,在排序結束後,整個陣列就被基元素分為了兩部分。*/

int quicksort_process2(int *a, int n)

++first;

} swap(a + second + 1, a + n - 1);

return second + 1;

}void quicksort2(int *a, int n)

}/*第三種快排,比較傳統的那種,引數中有low指標和high指標*/

int quicksort_process3(int *a, int low, int high)

a[h] = temp;

return h;

}void quicksort3(int *a, int low,int high)

}

三種快速排序

3種快排的實現方式,1是不適合重複元素多,2可以適應重複元素多,3可以優化重複元素多的時間 author hxj 2020年7月27日 public class main int l 0,r arr.length 1 quicksort arr,l,r private static void qui...

ArrayList的三種排序法

1.建立乙個student物件 只寫name屬性和age屬性,過載tostring 乙個空的建構函式 public class student public void setname string name public int getage public void setage int age p...

簡單的三種排序法

插入排序法 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置,重複步驟3,直到找到已排序的元素小於或者等於新元素的位置,將新元素插入到該位置中 重複步驟2。public static void ins...