C++でクイックソートの実装に失敗

前提

C++でクイックソートを実装しようとしています。

実現したいこと

昇順に配列をクイックソートしたいのですが、ここまで書いたコードの何が間違っているのか把握したいです。

発生している問題・エラーメッセージ

値が返ってきません。

該当のソースコード

C++

#include<bits/stdc++.h>using namespace std;#include<time.h> int partition(vector<int>&A, int l, int r, int pivot){ for(;;){ while(A[l] < pivot){ l++; } while(A[r] >= pivot) { r--; } if(l > r) { return l; break; } swap(A[l], A[r]); }} void QuickSort(vector<int>&a, int i, int j){ if(i >= j) return; int pivot; bool t = 0; for(int n = i; n <= j; n++) { if(a[n] != a[n+1]) { pivot = max(a[n], a[n+1]); t = 1; } } if (t=0) return; int k = partition(a,i,j,pivot); QuickSort(a,i,k-1); QuickSort(a,k+1,j); } int main() { int N = 5; vector<int> data = {2,1,4,5,3}; clock_t start = clock(); QuickSort(data,0,N-1); clock_t end = clock(); cout << (double)(end - start) << endl;}

試したこと

コード例を参考にしつつ怪しい部分を書き直しました。

補足情報(FW/ツールのバージョンなど)

コメントを投稿

0 コメント