冒泡排序的核心就是比较相邻的两个项,如果第一项比第二项大,则交换它们,以此类推元素向上移动到正确的位置,就像气泡冒出的感觉。
举一个简单的例子,有1,5,8,3,2这五个数,按照从小到大的顺序进行排列。代码如下:
1 let arr = [1, 5, 8, 3, 2] 2 3 function swap(arr, index1, index2) { 4 var temp = arr[index1] 5 arr[index1] = arr[index2] 6 arr[index2] = temp 7 } 8 9 function bubbleSort() { 10 for (let i = 0; i < arr.length - 1; i++) { 11 for (let j = 0; j < arr.length - 1; j++) { 12 if (arr[j] > arr[j + 1]) { 13 swap(arr, j, j + 1) 14 } 15 } 16 } 17 } 18 19 bubbleSort(arr) 20 console.log(arr) // 结果为 [ 1, 2, 3, 5, 8 ]
若要实现从大到小的排列,只需将 if (arr[ j ] > arr[ j + 1 ]) 中的 > 改为 < 即可。