この記事では、jsでカウントソートを実装する方法(バージョンアップ版)を紹介します。
本来のカウントソートでは、バケットの容量が十分な容量である必要があります。最小値から最大値までのすべての出現が含まれます。ここでは、オブジェクトの自動並べ替えと、同じ属性名を持つキーと値のペアを持てないことを利用して、バケットをオブジェクトに置き換えることができます。順序付けされたボリューム バケットは必要なく、キーと値のペアを追加するだけで済みます。意のままに。コードは次のとおりです。
var ary=[23,14,12,24,53,31,53,35,46,12,62,23]
コード例は次のとおりです。
function countSort(arr){ let obj={}; //遍历原数组,给对象新增键值对,如果已经存在就对应的属性值++,如果不存在则新增键值对 for(let i=0;i<arr.length;i++){ if(!obj[arr[i]]){ obj[arr[i]]=1; }else{ obj[arr[i]]++; } } let index=0; //遍历对象属性名,按顺序放回覆盖原数组 for(let key in obj){ while(obj[key]>0){ arr[index]=Number(key); obj[key]--; index++ } } return arr; } console.log(countSort(ary));
関連チュートリアルの推奨事項:js チュートリアル
以上がjsでカウントソートを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。