您好,登錄后才能下訂單哦!
快速排序是一種很常用的排序算法。
/* * 快速排序(偽算法) 2016-04-20 23:34:16 * 1.先找到第一個元素的最終位置 * 2.對第一個元素的最終位置之前的元素,進行快速排序。 * 3.對第一個元素的最終位置之后的元素,進行快速排序。 * */ extern void QuickSort(int a[],int low,int high);//第二個參數表示第一個元素的下標,第三個參數表示最后一個元素的下標 extern int FindPos(int a[], int low, int high); extern int FindPos(int a[], int start, int end) { int val; val = a[start]; while ( start < end ) { while ( (start < end ) && ( a[end] > val ) ) { --end; } a[start] = a[end]; while ( ( start < end ) && ( a[start] < val ) ) { ++start; } a[end] = a[start]; } a[start] = val; return start; } extern void QuickSort(int a[], int start, int end) { int pos; //經常出錯的地方1.這里的應該用if來判斷,而不是一個循環。 if (start < end) { pos = FindPos(a, start, end); QuickSort(a, start, pos - 1); QuickSort(a, pos + 1, end); } }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。