冒泡排序
## 算法描述: 1.比较相邻的元素:如果第一个比第二个元素大,那么就交换他们两个; 2.从第一对相邻的元素开始比较直到最后一对,这样在最后的元素是最大的一个; 3.针对所有元素(==除了最后一个==)重复以上步骤;
例子展示:
for (var k = 0; k < arr.length - 1; k++) { /*根据数组的元素个数来决定循环次数,
因为最后一个不用再次循环所以减一*/
for (var i = 0; i < arr.length - 1 - k; i++) { /*根据k值来决定内层循环次数,
因为最大值会往后走故后面不用再遍历*/
if (arr[i] > arr[i + 1]) {
var temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
}
}
}
选择排序
## 算法描述: 1.在待排序的一组数据中,选出最小(最大)的一个数与第一个位置的数交换; 2.然后在剩下的数中,再找出最小(最大)的数与第二个位置的交换位置; 3.然后再依此类推直到n-1个元素与第n个元素交换位置,选择排序结束。
例子展示:
for (var k = 0; k < arr.length; k++) {
var minIndex = k // 假设当前最小数值 为 下标 0 的项
for (var i = k + 1; i < arr.length; i++) {
if (arr[minIndex] > arr[i]) {
minIndex = i
}
}
// 交换 真实最小的值 与 下标 0 的值
var temp = arr[k]
arr[k] = arr[minIndex]
arr[minIndex] = temp
}