冒泡排序
- 两个相邻得数字进行比较和交换,如果前一个比后一个大,则交换位置。
- 第一轮交换后过后,最后一个数字应该是最大的一个,因此最后一个数字不用进行比较
代码示例
var array = [5, 8, 9, 7, 6, 3, 2, 4, 1, 8, 6, 5];
console.log("Before", array);
function bubbleSort(arr) {
let n = arr.length;
for (let i = n - 1; i >= 0; i--) {
// 冒泡排序排完一遍之后最后一个数是不用动的,范围依次往前缩小
for (let j = 1; j <= i; j++) {
// 如果前面的数比后面的的数大,那么两个数做交换
if (arr[j - 1] > arr[j]) {
// 进行交换
swap(arr, j - 1, j);
}
}
}
}
//交换方法
function swap(arr, i, j) {
let temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
bubbleSort(array);
console.log("After", array);
/**输出**/
Before [5, 8, 9, 7, 6, 3, 2, 4, 1, 8, 6, 5]
After [1, 2, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9]