js排序算法之冒泡排序

//功能:冒泡排序
//参数:arr, 待排序数组
//返回:arr1,排序后数组
function bubbleSort(arr) {    
    var len = arr.length;    
    for (var i = 0; i < len; i++) {        
        for (var j = 0; j < len - 1 - i; j++) {            
            if (arr[j] > arr[j+1]) {        //相邻元素两两对比                
                var temp = arr[j+1];        //元素交换
                arr[j+1] = arr[j];
                arr[j] = temp;
            }
        }
    }    
    return arr;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是快速排序算法冒泡排序算法JS实现和注释: 快速排序算法: ```javascript function quickSort(arr) { // 如果数组长度小于等于1,则返回原数组 if (arr.length <= 1) { return arr; } // 选择基准点,可以选第一个元素、最后一个元素或者中间元素 const pivotIndex = Math.floor(arr.length / 2); const pivot = arr[pivotIndex]; // 分别存放比基准点小、大和等于基准点的元素 const less = []; const greater = []; const equal = []; for (let i = 0; i < arr.length; i++) { if (arr[i] < pivot) { less.push(arr[i]); } else if (arr[i] > pivot) { greater.push(arr[i]); } else { equal.push(arr[i]); } } // 递归处理比基准点小和大的数组,再将三个数组拼接起来 return quickSort(less).concat(equal, quickSort(greater)); } ``` 注释: 1. `quickSort` 函数接受一个数组作为参数,返回排序后的数组。 2. 如果数组长度小于等于1,则返回原数组,因为只有一个元素或者没有元素的数组已经是有序的了。 3. 选择基准点,这里选取的是中间元素。 4. 分别存放比基准点小、大和等于基准点的元素。 5. 递归处理比基准点小和大的数组,再将三个数组拼接起来。 冒泡排序算法: ```javascript function bubbleSort(arr) { // 外层循环控制排序的趟数 for (let i = 0; i < arr.length - 1; i++) { // 内层循环控制每趟排序的次数 for (let j = 0; j < arr.length - 1 - i; j++) { // 如果前一个元素比后一个元素大,则交换它们的位置 if (arr[j] > arr[j + 1]) { const temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } return arr; } ``` 注释: 1. `bubbleSort` 函数接受一个数组作为参数,返回排序后的数组。 2. 外层循环控制排序的趟数,由于每趟排序都会把最大的元素“冒泡”到最后,所以最后一个元素不需要再参与比较。 3. 内层循环控制每趟排序的次数,由于已经有 `i` 个元素排好序了,所以内层循环只需要比较前 `arr.length - 1 - i` 个元素。 4. 如果前一个元素比后一个元素大,则交换它们的位置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值