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

王林
リリース: 2020-04-01 09:17:59
転載
2917 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート