一、冒泡排序
1.生成一个长度为10的数组,数组中元素为0—100的随机数。
2.使数组中元素的大小从小到大排列。
var arr = [];
for (i = 0; i < 10; i++) {
arr[i] = Math.round(Math.random() * 100);
}
console.log(arr);
for (i = 0; i < arr.length - 1; i++) {//外层循环:循环整体需要循环的次数
for (j = 0; j < arr.length - i - 1; j++) {//内部循环:每一次循环都会确定一个最大的数,10个数需要对比9次
if (arr[j] > arr[j + 1]) {//如果是目前的元素在进行比较,目前元素比后面的元素大,则互换位置
var num = arr[j];//声明一个变量将索引值为 j 的元素进行封存
arr[j] = arr[j + 1];//将索引值为 j 的元素更改为后一位的元素
arr[j + 1] = num;//将封存好元素的变量赋值给后一位的元素
}
}
}
console.log(arr);
冒泡排序
二、选择排序
1.生成一个长度为10的数组,数组中元素为0—100的随机数。
2.使数组中元素的大小从小到大排列。
var arr = [];
for (i = 0; i < 10; i++) {
arr[i] = Math.round(Math.random() * 100);
}
console.log(arr);
for (i = 0; i < arr.length - 1; i++) {//外层循环:循环整体需要循环的次数
var min = i//声明变量,每次循环提取当前索引值为 i 的元素
for (j = i + 1; j < arr.length; j++) {//内层循环:用提取的元素从第二个元素开始进行比较
if (arr[j] < arr[min]) {//如果当前元素小于提取出来的元素,则将当前元素确定为最小元素
min = j
}
}
var num = arr[i];//声明一个变量将索引值为 i 的元素进行封存
arr[i] = arr[min];//将索引值为 i 的元素更改为循环下来最小的元素
arr[min] = num;//将索引值为 i 的元素赋值给被替换的位置
}
console.log(arr);
选择排序
三、插入排序
1.生成一个长度为10的数组,数组中元素为0—100的随机数。
2.使数组中元素的大小从小到大排列。
var arr = [];
for (i = 0; i < 10; i++) {
arr[i] = Math.round(Math.random() * 100);
}
console.log(arr);
for (i = 1; i < arr.length; i++) {//外部的循环次数,i = 0或i = 1都可以,但是从第二次开始,第一次循环没有意义
for (j = i; j > 0; j--) { // 从第二位开始向前比较
if (arr[j] < arr[j - 1]) {//后一位如果小于前一位则准备互换位置
var num = arr[j - 1];//将前一位的元素封存
arr[j - 1] = arr[j];//将后一位的元素赋给前一位
arr[j] = num;//将封存的元素赋给后一位
}
}
}
console.log(arr);
插入排序
网友评论