-1
我正在嘗試在此進行快速排序以進行正式研究。但我不知道如何quicksort工作即時看着這個算法,但不知道現在使用冒泡排序什麼或如何實現它,但我如何繼續並實現quicksort?不知道如何去執行Quicksort
# choose pivot
swap a[1,rand(1,n)]
# 2-way partition
k = 1
for i = 2:n, if a[i] < a[1], swap a[++k,i]
swap a[1,k]
→ invariant: a[1..k-1] < a[k] <= a[k+1..n]
# recursive sorts
sort a[1..k-1]
sort a[k+1,n]
這低於
int main()
{
srand(time(NULL));
int length = 250000;
double arr[length];
for(int i = 0; i<length; ++i) arr[i] = rand();
// mergeSort2(arr, arr+length-1);
for(int i = 0; i < (length-1); i++)
{
for(int j = i+1; j < length; j++)
{
if(arr[i] > arr[j])
{
swap(arr[i], arr[j]);
}
}
}
ofstream ofs("input.txt");
for(int i = 0; i<length; ++i) ofs << i << " " << arr[i] << endl;
}
你先看看這個嗎? http://www.csanimated.com/animation.php?t=Quicksort – CppLearner 2011-12-25 04:57:16
現在看代碼沒有任何錯誤。人們通常在5秒鐘內就忘記了實際的實施。重要的是瞭解機制(QS的工作原理)。 – CppLearner 2011-12-25 04:58:32
不推薦使用Bubble Sort(或者甚至考慮)。無論如何,你的代碼有什麼問題? – 2011-12-25 06:03:33