頻度の昇順で配列をソートしたいと思います。たとえば、配列がある場合
int arr[] = { 3, 3, 10, 2, 5, 10, 10, 2, 2, 2 };
または、別の配列には次のシーケンスが含まれます。
int arr[] = {5, 3, 3, 10, 10, 10, 2, 2, 2, 2};
ただし、ハッシュやマップは使用できません。使用できるのは配列のみです。私が考えたのは、クイックソートアルゴリズムを使用して配列をソートし、ソートされた配列をスキャンし、2次元配列でカウントを実行して、各要素に関連付けられたカウントがあり、次にカウントでソートすることです。2 つのカウントが同じ場合は、値が小さい方を最初に出力するだけです。最後の 2 つの手順の実装に問題があります。カウントを 2 次元配列のインデックスに「マップ」する方法も、2 次元配列をカウントでソートする方法もわかりません。誰か助けてくれませんか?ありがとう!