sort関数


最近,テスト符号化の準備のためにアルゴリズムの問題を解決している.
私は問題を解くときに使う方法を完全に理解していないのではなく、問題を解いていると思いますので、この文章をよりよく理解して使うために.

sortとは?

  • 配列の要素をソートするための関数
  • arr.sort([compareFunction])

  • 括弧([])は括弧()のパラメータが必須ではなく、場合によっては省略できます.

  • compareFunctionは、要素の順序を決定するための関数です.
    1番目の値が2番目の値より小さい場合は、負の値を返します.
    同じ場合は0を返します.
    そうでなければ、正の値を返します.
    省略する場合は、ASC||文字の昇順で並べ替えます.

  • パラメータを省略してASC|文字で並べ替えると、10は3より前になります.
    これは、ASC||文字でソートすると、一時的に数値タイプ->文字列タイプに変換されるためです.
    また、変換後、この文字の最初の文字に基づいて比較するので、「10」=1のアスキーコード値を得ることができ、「3」未満のアスキーコード値を得ることができる.

  • では、正しく揃えるにはどうすればいいのでしょうか.
    .sort()でcompareFunctionパラメータを宣言すればよい.
    .sort()関数は、配列内の2つの要素をcompareFunctionで宣言された関数に繰り返し送信し、compareFunctionで返された値に基づいてソートします.
    要素の名前がa,bの場合、compareFunctionの戻り値(return)に従います.sort()関数の解釈は以下の通りである.
  • 戻り値<0:aは、bより前(負のa、bビットを置換しない)
  • でなければならない.
  • 戻り値=0:aおよびbの順序は変更されません.
  • 戻り値>0:bはaより前である必要があります.(両面a,bシフト)
  • 実際に使用する場合、

  • 昇順コード


  • 降順コード

  • sort関数応用


  • オブジェクトのソート


  • 条件付きソート

  • の最後の部分
  • .sort関数パラメータとしてのcompare関数return値は
  • である.
  • の負数であれば、a,bの位置は変わらず、
  • である.
  • 正数であればa,bの位置は
  • に変わる.
  • 0はそのままです.
  • .sort関数のパラメータcompare関数をどのように記述するかによって、ソート方法は多種多様である.
  • コメントサイト:
    https://change-words.tistory.com/64
    https://brunch.co.kr/@swimjiy/12
    https://opentutorials.org/course/50/109(sort関数動作原理コメント)