資料結構 快速排序

2021-08-16 07:36:12 字數 2056 閱讀 6111

源**

public

class

quicksort

extends

datacrol

if (array[left] > array[right])

if (array[mid] > array[left])

return partition2(array, left, right);

}// 58 55 93 61 61 29 68 00 22 07

// 07 55 93 61 61 29 68 00 22 07

// 07 55 93 61 61 29 68 00 22 93

// 07 55 22 61 61 29 68 00 22 93

// 07 55 22 61 61 29 68 00 61 93

// 07 55 22 00 61 29 68 00 61 93

// 07 55 22 00 61 29 68 61 61 93

// 07 55 22 00 29 58 68 61 61 93

// ok

int partition2(int array, int left, int right)

array[left] = array[right];

while (array[left] <= key && right > left)

array[right] = array[left];

}array[right] = key;

return right;

}// 58 55 93 61 61 29 68 00 22 07

// p i

// 58 55 29 61 61 93 68 00 22 07

// p i

// 58 55 29 00 61 93 68 61 22 07

// p i

// 58 55 29 00 22 93 68 61 61 07

// p i

// 58 55 29 00 22 07 68 61 61 93

// p i

// 07 55 29 00 22 58 68 61 61 93

// p ok

int partition(int a, int left, int right)

// }

// swap(a, tail + 1, right); // 最後把基準放到前乙個子陣列的後邊,剩下的子陣列既是大於基準的子陣列

// // 該操作很有可能把後面元素的穩定性打亂,所以快速排序是不穩定的排序演算法

// return tail + 1; // 返回基準的索引

int pivot = a[left];

int tail = left;

for (int i = left + 1; i <= right; i++)

}swap(a, left, tail);

return tail;

}void quicksort(int a, int left, int right)

/*** 快速排序非遞迴(棧)

**@param array

*/void quicksortiteration(int array)

if (right > pivotpos + 1) }}

@override

public

void

sort(int array)

public

static

void

main(string args) ;

datacrol.print(array);

quicksort.sort(array);

datacrol.print(array);

quicksort.timetest(700000);

}}

資料結構 排序 快速排序

對序列 47,31,83,91,57,18,96,16 進行快速排序 首元素為基準 第二趟排序結果是 正確答案 b 你的答案 c 錯誤 18 31 16 47 57 91 96 83 16 31 18 47 57 91 96 83 16 18 31 47 57 91 96 83 16 18 31 4...

資料結構 排序 快速排序

快速排序在平均情況下是效果最好的排序演算法 每趟子表的排序都是從兩頭向中間交替逼近,接下來舉乙個例子 sorry,上面這個圖的6和5的位置畫反啦,快速排序全域性有序,一趟排序便可以確定基準值的最終位置 類別排序方法 最好時間 最壞時間 平均時間 空間複雜度 穩定性序列特徵 適用於插入排序 直接插入排...

資料結構排序 快速排序

快速排序是對氣泡排序的改進,它的基本思想是通過一趟排序將資料分成兩部分,一部分中的資料都比另一部分中的資料小,再對這兩部分中的資料再排序,直到整個序列有序,如下圖所示。快排的遞迴實現 1 include 2 include 3 4intn 5 6 7 分割使樞軸記錄的左邊元素比右邊元素小8 9int...