冒泡排序:把数组里的元素按照从大到小 或者从小到大的顺序排列
简单点的方法:利用sort();进行冒泡排序
这个此弊端是只能处理个位数的冒泡排序 出现十位数就排序错误
var arr = [9, 2, 3, 1];
arr.sort();
console.log(arr); //1 2 3 9
解决方法 在sort里添加一个函数:
var arr = [19, 2, 3, 1];
arr.sort(function(a, b) {
return a - b; //升序的排列 从小到大
// return b - a; 降序的排列 从大到小
});
console.log(arr);
方法二:利用双重for循环
<script> var arr = [1, 2, 3, 4, 5, 6, 7]; for (var i = 0; i <= arr.length - 1; i++) { for (var j = 0; j <= arr.length - i - 1; j++) { //内部交换2个变量的值 前一个和后面一个数组元素相比较 if (arr[j] < arr[j + 1]) { //小于号 从大到小排 //arr[j] > arr[j + 1] 大于号 从小到大排 var temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } console.log(arr); //7 6 5 4 3 2 1 </script>
方法三:利用封装函数进行冒泡排序
<script>
//sort 排序
function sort(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 temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
var arr1 = sort([1, 9, 2, 3]);
console.log(arr1);
var arr2 = sort([1, 23, 4, 3]);
console.log(arr2);
</script>