ホームページ >ウェブフロントエンド >jsチュートリアル >jsでカウントソートを実装する方法

jsでカウントソートを実装する方法

王林
王林転載
2020-04-01 09:17:592934ブラウズ

jsでカウントソートを実装する方法

この記事では、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 サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。