选择排序法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
// 选择排序
// 思路:假定0就是最小的 定义一个索引指向0 挨个比较 如果它比别的数大 就将索引 指向更小的数
// 再拿着这个新数从这个新数往后比较 直到最后 这么一轮下来就能够确定一个最小的数
// 将0位置与该数位置更换4
// 第二轮 假定1是第二小的数 定义一个索引只想1 挨个比较 如果比别的数大 就将索引 指向更小的数
// 再拿着这个新数从这个新数往后比较 直到最后 这么一轮下来就能够确定一个第二小的数
// 依次类推
// 举例说明
// var arr = [10, 17, 5, 88, 54, 0, 23, 11, -10, 9];
// 先拿着10 与后面的数比较 如果10比5大 说明10不是最小的 于是将索引指向5 拿着5继续往后比 如果又遇见了比5还小的数
// 更换索引 继续拿着新数往后比较 一轮下来确定一个最小的数
// 定义索引 用于指向最小的数字的下标
// var index = 0;
// // 定义已经循环了几轮 已经有几个数排好顺序
// var sub = 0;
// // 开始循环
// for (var i = 1; i < arr.length; i++) {
// // 判定 如果当前index指向的不是最小的 就让它指向最小的
// if (arr[index] > arr[i]) {
// index = i;
// }
// }
// console.log(index);
// // 当循环结束之后index已经指向最小的 于是就换位
// var temp = arr[sub];
// arr[sub] = arr[index];
// arr[index] = temp;
// 以上代码是第一轮的执行经过
var arr = [10, 17, 5, 88];
// 以下代码是多次执行的经过
for (var j = 0; j < arr.length - 1; j++) {
// 定义索引 用于指向最小的数字的下标
var index = j;
// 定义已经循环了几轮 已经有几个数排好顺序
var sub = j;
// 开始循环
for (var i = j + 1; i < arr.length; i++) {
// 判定 如果当前index指向的不是最小的 就让它指向最小的
if (arr[index] > arr[i]) {
index = i;
}
}
console.log(index);
// 当循环结束之后index已经指向最小的 于是就换位
var temp = arr[sub];
arr[sub] = arr[index];
arr[index] = temp;
}
</script>
</body>
</html>