数组冒泡排序算法
- 排序算法:将数组中的数据按照升序或降序重新排序
- 数组冒泡排序实现
- 循环数组,数组数据前后两两比较大小,如果前一个比后一个更大则交换位置
- 后续重复执行步骤1,最终数组排序完成
var = [3, 1, 5, 8, 6, 4, 9, 7, 2];
for (var j = 1; j <= arr.length - 1; j++) {
for (var i = 0; i < arr.length - j; i++) {
if (arr[i] > arr[i + 1]) {
var tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
}
}
}
console.log(arr);
数组选择排序算法
- 数组选择排序实现
- 步骤1:
- 假设第一个数据
[0]
为最小值,并将[0]
的索引记录在变量minIndex
中 - 从
[1]
开始遍历数组,逐个与[minIndex]
的值比较大小,将值更小的的索引记录在minIndex
中
- 遍历完毕后,
minIndex
中记录的一定是最小值的索引
- 判断
minIndex
中的值是否是假设的[0]
的索引
- 完成后
[0]
一定是最小值
- 后续重复执行步骤1,最终数组排序完成(前提每一轮假设索引依次递增)
- 注意:
- 第一次执行步骤1假设
[0]
是最小值,从[1]
开始遍历数组 - 第二次执行步骤1假设
[1]
是最小值,从[2]
开始遍历数组 - 第三次执行步骤1假设
[2]
是最小值,从[3]
开始遍历数组 - 第四次执行步骤1假设
[3]
是最小值,从[4]
开始遍历数组 - …
- 最多重复步骤1数组长度-1次
var arr = [3, 1, 5, 8, 6, 4, 9, 7, 2];
for (var j = 0; j < arr.length - 1; j++) {
var minIndex = j;
for (var i = minIndex + 1; i < arr.length; i++) {
if (arr[i] < arr[minIndex]) minIndex = i;
}
if (minIndex != j) {
var tmp = arr[j];
arr[j] = arr[minIndex];
arr[minIndex] = tmp;
}
}
console.log(arr);