私はちょうどリサーチのためにこれにクイックソートを実装しようとしています。しかし、私はどのようにクイックソートは、このアルゴリズムを見て、私はバブルの並べ替えを使用してどのように実装するか分からないが、私は先に進んでクイックソートを実装するかわからない?どのようにimlpementにすべきか分かりません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]
これは、このanimationは本当に便利です
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
今すぐコードを見て間違っていることはありません。人々は通常、実際の実装を5秒で忘れてしまいます。どのような問題がメカニズムを理解するか(QSの仕組み) – CppLearner
バブルソートを使用する(または考えてみる)ことはお勧めしません。とにかくコードの問題は何ですか? –