拉勾資料結構課之快速排序演算法

2021-10-05 23:41:43 字數 926 閱讀 7035

/*快速排序

以第乙個數為基準點,把大於基準點的放在基準點右邊,小於基準點的放在基準點左邊。

再把左邊的當作乙個新的陣列1,右邊的當作乙個新陣列2,分別重新選取新的陣列1,2的基準點不斷執行小於基準點的放左邊,大於基準點的放右邊

不斷劃分左右陣列序列,直到左右陣列序列只剩乙個數

實現方法:

定義兩個哨兵i,j,j每次先從後往前找到第乙個小於基準點的數,如果此時i,j,沒有相遇,i在 j找到數後從前往後找到第乙個大於基準點的數

不斷 重複該過程,直到i,j相遇,相遇點即為基準點應該所處的位置

把基準點前後各劃分為乙個新的陣列後重複1,2過程,直到形成的陣列只有乙個數*/

public static void quicksort(int a,int low,int high)

int i,j,key;

i=low;

j=high;

key=a[low];

while(i=key)

while(i=high) return;

int p=getpartionvalue(nums,low,high);

quicksortrecursion(nums,low,p-1);

quicksortrecursion(nums,p+1,high);

}public int getpartionvalue(int nums,int low,int high)

return -1;

}public int getpartionvalue(int nums,int low,int high)else*/

if(nums[j]<=nums[high])

swap(nums,i++,j);

}swap(nums,i,j);

return i;

}

資料結構排序演算法之快速排序

快速排序 includeusing namespace std void swap int arr,int i,int j void quicksort int arr,int left,int right arr i temp quicksort arr,left,i 1 quicksort ar...

資料結構課設 排序演算法之 簡單快速排序和氣泡排序

1 是一種運用遞迴思想並且應用交換作為工具的一種排序演算法。2 時間複雜度在不同的情況下不同,最好情況nlog n 最差情況n 2。一般平均的情況下為nlog n u.txt 中的範例5 3 1 4 9 2 includeusing namespace std void qsort int a,in...

資料結構之排序演算法 快速排序 java

5快速排序 快排 public class quicksort partition a,0,a.length 1 print a test public void testquicksort quicksort a,0,a.length 1 print a public void quicksort...