一蘸炸、冒泡排序
1.生成一個長度為10的數(shù)組慕购,數(shù)組中元素為0—100的隨機數(shù)聊疲。
2.使數(shù)組中元素的大小從小到大排列。
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++) {//外層循環(huán):循環(huán)整體需要循環(huán)的次數(shù)
for (j = 0; j < arr.length - i - 1; j++) {//內(nèi)部循環(huán):每一次循環(huán)都會確定一個最大的數(shù)脓钾,10個數(shù)需要對比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的數(shù)組昌妹,數(shù)組中元素為0—100的隨機數(shù)。
2.使數(shù)組中元素的大小從小到大排列握截。
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++) {//外層循環(huán):循環(huán)整體需要循環(huán)的次數(shù)
var min = i//聲明變量飞崖,每次循環(huán)提取當(dāng)前索引值為 i 的元素
for (j = i + 1; j < arr.length; j++) {//內(nèi)層循環(huán):用提取的元素從第二個元素開始進行比較
if (arr[j] < arr[min]) {//如果當(dāng)前元素小于提取出來的元素,則將當(dāng)前元素確定為最小元素
min = j
}
}
var num = arr[i];//聲明一個變量將索引值為 i 的元素進行封存
arr[i] = arr[min];//將索引值為 i 的元素更改為循環(huán)下來最小的元素
arr[min] = num;//將索引值為 i 的元素賦值給被替換的位置
}
console.log(arr);
三谨胞、插入排序
1.生成一個長度為10的數(shù)組固歪,數(shù)組中元素為0—100的隨機數(shù)。
2.使數(shù)組中元素的大小從小到大排列胯努。
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++) {//外部的循環(huán)次數(shù)牢裳,i = 0或i = 1都可以,但是從第二次開始叶沛,第一次循環(huán)沒有意義
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);