TIL 82|ソート(2)-JSによるBubble Sortの実装
6117 ワード
Bubble Sort
コンセプト
2つの隣接データ値を交換位置で並べ替えるアルゴリズム.
ソートプロセスにバブルが現れるように見えるため、このような名前が付けられています.
プロセス
時間の複雑さ
Big-O : O(n^2)
Big-Ω : Ω(n^2)
(n-1)*(n-2) = n^2-3n+2
整列するかどうかにかかわらず、ループを迂回して比較する必要があるため、実行時間の上下限は同じです.メリットとデメリット
長所
ソートするアレイで他のメモリ領域をスワップする必要はありません
(その場でソート)
短所
特長
Stable
冗長データがある場合は、データを交換するのではなく、ソートが終了しても既存の冗長データの順序を維持します.
コード#コード#
function bubbleSort (array) {
for(let i=0; i<array.length; i++){
let swap;
for(let j=0; j<array.length-1-i; j++){
if(array[j]>array[j+1]){
swap = array[j];
array[j] = array[j+1];
array[j+1] = swap;
}
}
console.log(`${i}회전 : ${array}`)
if(!swap){
break;
}
}
return array;
}
console.log(bubbleSort([5,7,3,4,1,6,2]));
参考資料
CS50
https://medium.com/@peterlin5301997/bubble-sort-5a66156c942e
https://im-developer.tistory.com/133
Reference
この問題について(TIL 82|ソート(2)-JSによるBubble Sortの実装), 我々は、より多くの情報をここで見つけました https://velog.io/@mygomi/TIL-82-정렬2-JS로-Bubble-Sort-구현テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol