账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    这两种冒泡排序执行速度差在那里?
    26
    0
    function bubbleSort1(arr) {
          var i = arr.length - 1,
            j, tmp;
          while (i !== 0) {
            var p = 0;
            for (j = 0; j < i; j++) {
              if (arr[j] > arr[j + 1]) {
                tmp = arr[j + 1];
                arr[j + 1] = arr[j];
                arr[j] = tmp;
                p = j;
              }
            }
            i = p;
          }
          return arr
        }
        var sort = function (arr) {
          var len = arr.length;
          var i = 0, j = 0, temp;
          for (i = 0; i < len; i++) {
            for (j = 0; j < len - i - 1; j++) {
              if (arr[j] > arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
              }
            }
          }
          return arr;
        }

    这两种冒泡排序执行速度差10倍 差在那里。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • {鸢゜} 普通会员 1楼

      冒泡排序和快速排序都是基于比较的排序算法,但是它们在排序过程中,比较的次数和效率是有区别的。

      1. 冒泡排序:冒泡排序是一种简单直观的排序算法,它的基本思想是重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

      2. 快速排序:快速排序是一种分治算法,它的基本思想是选择一个“基准”元素,将数列分为两个子数列,一个子数列的所有元素都比基准小,另一个子数列的所有元素都比基准大,然后对这两个子数列分别进行快速排序,最终得到一个已经排序好的数列。

      从效率上看,冒泡排序的平均时间复杂度是O(n^2),最坏的情况是O(n^2),而快速排序的平均时间复杂度是O(n log n),最坏的情况是O(n^2)。

      在实际应用中,冒泡排序通常比快速排序更慢,因为它的每一次比较都需要移动大量的元素,而且每次比较都需要对整个数列进行排序,所以它的效率相对较低。而快速排序的效率相对较高,因为它采用分治策略,可以将大问题分解为小问题,然后逐一解决。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部