クイックソートは私たちにかなり素晴らしいO(nlogn)を与えます。しかし、クイックソートよりも高速な一意の値で配列を並べ替える方法はあるのでしょうか。
ソートアルゴリズムとテクニックについて@Bilalの回答は非常に役立ちます!!
問題の回避策が実行される可能性がありますO(N*log(N))
が、重複した値が削除されるため、さらに計算する必要はありません。
したがって、値を入力して挿入すると、std::set
重複する値が自動的に削除されます。重複が必要な場合は、ユーザーからの入力を取得しながらカウントを保存できます。
サンプルコードは次のようになります。
int n,x;
set<int> st;
int cnt[MAX_VAL];
int main(){
cin>>n;
for (int i=1;i<=n;i++){
cin>>x;
cnt[x]++;
st.insert(x);
}
// Rest of your code
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加