1.冒泡排序
- 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
- 對每一對相鄰元素做同樣的步驟,從開始第一對到結尾的最后一對。所以最后的元素應該會是最大的數(shù)。
- 對所有的元素重復步驟,除了最后一個。
- 每次對越來越少的元素重復上面的步驟,直到沒有數(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++) {//內層循環(huán)控制著次數(shù)
if (arr[j] > arr[j + 1]) {
//給一個臨時的變量 來存放
var san = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = san
}
}
}
console.log(arr)
2.隨機排序-洗牌排序
1.)數(shù)組sort方法進行排序
1.sort 方法是對數(shù)組元素進行排序,默認排序順序是先將元素轉換為字符串,然后再進行排序
2.每次刷新都會得到一個新的數(shù)組
//1.sort方法
var arr = [5, 4, 3, 2, 1]
arr.sort(function(a,b){
return Math.random()-0.5//通過隨機產生0到1的數(shù),然后判斷是否大于0.5從而影響排序
})
console.log(arr)
2.)遍歷數(shù)組進行排序
//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)