算法——排序(冒泡排序)

  冒泡排序的核心就是比较相邻的两个项,如果第一项比第二项大,则交换它们,以此类推元素向上移动到正确的位置,就像气泡冒出的感觉。

  举一个简单的例子,有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 ])  中的  > 改为 < 即可。

 

  

猜你喜欢

转载自www.cnblogs.com/pcyu/p/11372394.html
今日推荐