作业:写一个函数,实现对数字数组的排序(从小到大)
方法:用到冒泡排序,比较相邻的元素,如果第一个比第二个大,就交换它们两个。
/* 例如 [4,5,3,1,2]
[i=0]第一趟 换4次 [次数4-0]
[i=1]第二趟 换3次 [4-1]
[i=2]第三趟 换2次 [4-2]
[i=3]第四趟 换1次 [4-3]
5个元素换4趟,i=3
[i<元素长度-1] [元素长度-1-i]
使用双重for循环,外层的for循环管趟数,里层的管换的次数。
*/
function rank(arr) {
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - i - 1; j++)
if (arr[j] > arr[j + 1]) {
var blanket; //用来交换两个变量值 的第三方
blanket = arr[j]; //把前一个倒进水桶
arr[j] = arr[j + 1]; //后一个倒进前一个
arr[j + 1] = blanket; //水桶水倒进后一个
}
}
return arr;
}
arr2 = [100, 5, 99, 1, 2];
console.log(rank(arr2));