對關鍵碼序列(66,13,51,76,81,26,57,69,23)進行快速排序。
求第一趟劃分後的結果。
關鍵碼序列遞增。
以第乙個元素為劃分基準。
將兩個指標i,j分別指向表的起始和最後的位置。
反覆操作以下兩步:
(1)j逐漸減小,並逐次比較j指向的元素和目標元素的大小,若p(j)(2)i逐漸增大,並逐次比較i指向的元素和目標元素的大小,若p(i)>t則交換位置。
直到i,j指向同乙個值,迴圈結束。
步驟一:
首先設定兩個變數i,j。分別指向序列的首尾元素。
步驟二:
該例子是以第乙個元素為基準,從小到大進行排列。讓j從後向前進行查詢,直到找到第乙個小於66的元素。則將最後乙個j指向的數23,和i指向的66交換位置。然後將i從前向後查詢,直到找到第乙個大於66的元素76。
步驟三:
將76和66位置互換。讓j從後向前進行查詢,直到找到第乙個小於66的元素57。
步驟四:
將57和66交換位置。
步驟五:
然後將i從前向後查詢,直到找到第乙個大於66的元素81.
步驟六:
將81和66交換位置。讓j從後向前進行查詢,直到找到第乙個小於66的元素26。
步驟七:
將26和66交換位置。此時i,j都同時指向了目標元素66.查詢停止。所得到的序列就是第一趟排序的序列。
快速排序例項
include stdafx.h include define cutoff 3 int array void insert sort int array,int size array j temp print array array,size void print array int array,...
快速排序例項
快速排序是根據待排序陣列中的某一值val,將待排序陣列分割成兩部分資料,前一部分陣列比val小 後一部分陣列比val大,之後對每部分資料重複上述過程,最終實現待排序陣列的有序性,例項如下 public class quicksortmain 切分待排序陣列 param arr param low p...
快速排序例項
void sort int a,int left,int right int i left int j right int key a left while i a i a j 找到乙個這樣的數後就把它賦給前面的被拿走的我的值 如果第一次迴圈且鍵是 乙個 左 那麼就是給金鑰 while i a i ...