1.冒泡排序
- 比較相鄰的元素。如果第一個(gè)比第二個(gè)大雷激,就交換他們兩個(gè)瘾腰。
- 對(duì)每一對(duì)相鄰元素做同樣的步驟坯辩,從開(kāi)始第一對(duì)到結(jié)尾的最后一對(duì)。所以最后的元素應(yīng)該會(huì)是最大的數(shù)怨酝。
- 對(duì)所有的元素重復(fù)步驟傀缩,除了最后一個(gè)。
- 每次對(duì)越來(lái)越少的元素重復(fù)上面的步驟凫碌,直到?jīng)]有數(shù)字需要比較扑毡。
var arr = [5, 4, 3, 2, 1]
for (var i = 0; i < arr.length - 1; i++) {//外層循環(huán)控制循環(huán)的趟數(shù)
for (var j = 0; j < arr.length - 1; j++) {//內(nèi)層循環(huán)控制著次數(shù)
if (arr[j] > arr[j + 1]) {
//給一個(gè)臨時(shí)的變量 來(lái)存放
var san = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = san
}
}
}
console.log(arr)
2.隨機(jī)排序-洗牌排序
1.)數(shù)組sort方法進(jìn)行排序
1.sort 方法是對(duì)數(shù)組元素進(jìn)行排序,默認(rèn)排序順序是先將元素轉(zhuǎn)換為字符串,然后再進(jìn)行排序
2.每次刷新都會(huì)得到一個(gè)新的數(shù)組
//1.sort方法
var arr = [5, 4, 3, 2, 1]
arr.sort(function(a,b){
return Math.random()-0.5//通過(guò)隨機(jī)產(chǎn)生0到1的數(shù),然后判斷是否大于0.5從而影響排序
})
console.log(arr)
2.)遍歷數(shù)組進(jìn)行排序
//2. 遍歷數(shù)組
for(var i=0;i<arr.length;i++){
var rd=Math.floor(Math.random()*arr.length)
console.log(rd)
var temp=arr[rd]
arr[rd]=arr[i]
arr[i]=temp
}
console.log(arr)