排序

作者: BJ呀呀呀 | 来源:发表于2021-05-15 08:57 被阅读0次

1.冒泡排序

  • 1.外循环-1
  • 2.内循环-1 又 -i
  • 3,内循环的邻里比较大小
  • 4.两两交换位置
 //冒泡排序
    var arr = [2, 5, 6, 1, 7, 4, 9, 8, 3];
    for (var i = 0; i < arr.length - 1; i++) {
      for (var j = 0; j < arr.length - 1 - i; j++) {
        if (arr[j] > arr[j + 1]) {  
          var temp = arr[j + 1];
          arr[j + 1] = arr[j];
          arr[j] = temp;
        }
      }
    }
    console.log(arr);

2. 选择排序

 //选择排序
    var arr = [4, 5, 3, 2, 6];
    for (var i = 0; i < arr.length - 1; i++) {
      var winindex = i; //假设期望i赢
      for (var j = i + 1; j < arr.length; j++) {
        if (arr[winindex] > arr[j]) {
          winindex = j;
        }
      }
      //拿最大的下标对应值,  的值,进行交换位置
      if (winindex != i) {
        var temp = arr[winindex];
        arr[winindex] = arr[i];
        arr[i] = temp;
      }
    }
    console.log(arr);

3.快速排序

 var list = [4, 5, 3, 2, 6];
//递归,能实现 快速排序
        function quickSort(arr) {
            //1.数组的长度如果小于等于1,就终止.并返回数组
            if (arr.length <= 1) { //递归的零界点
                return arr
            }
            //2. 大于等于2个元素以上的,就需要进行拆
            var middleIndex = parseInt(arr.length / 2);
            //3.通过中间下标,得到中间数
            // splice删除元素,返回一个数组,在配合中括号,取出里面的数组
            var middleVal = arr.splice(middleIndex, 1)[0];
            //4.准备2个空数组 
            var left = [], right = [];
            //5.遍历原来数的数组,(原来的数组会少中间数)
            for (var i = 0; i < arr.length; i++) {
                if (arr[i] > middleVal) {
                    right.push(arr[i])
                } else {
                    left.push(arr[i])
                }
            }
            return quickSort(left).concat(middleVal, quickSort(right));
        }

        var newArr = quickSort(list)
        console.log(newArr);

相关文章

  • 【恋上数据结构与算法二】(一)排序(Sorting)

    排序方法 冒泡排序 选择排序 堆排序 插入排序 归并排序 快速排序 希尔排序 计数排序 基数排序 桶排序 初识排序...

  • 排序-冒泡排序

    排序系列传递门 排序—选择排序排序—快速排序排序—插入排序排序-希尔排序(待完善)排序—归并排序(待完善)排序—基...

  • 排序

    冒泡排序: 冒泡排序 选择排序: 插入排序: 希尔排序: 归并排序: 快速排序: 堆排序: 计数排序: 桶排序: ...

  • Java | 10种排序算法

    冒泡排序 选择排序 插入排序 希尔排序 计数排序 基数排序 堆排序 归并排序 快速排序 桶排序

  • 常见的排序

    冒泡排序: 选择排序: 插入排序: 快速排序: 希尔排序: 归并排序: 堆排序: 计数排序: 桶排序: 基数排序:

  • 002--20200409刷题

    冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 计数排序 桶排序 基数排序

  • 排序

    排序 符号:Θ 插入排序 选择排序 堆排序 归并排序 冒泡排序 快速排序 桶排序 基数排序 计数排序 插入排序 插...

  • 排序 -- 选择/插入

    聊聊排序吧 冒泡排序 选择排序 插入排序 快速排序 归并排序 计数排序 桶排序 堆排序 本篇 选择排序与插入排序 ...

  • 前端基础整理 | 算法基础

    排序算法 冒泡排序 选择排序 插入排序 希尔排序 归并排序 堆排序 快速排序

  • Java 常见的 8 种排序算法(内排序)

    排序分类 内部排序 插入排序:直接插入排序、希尔排序 交换排序:冒泡排序、快速排序 选择排序:直接选择排序、堆排序...

网友评论

      本文标题:排序

      本文链接:https://www.haomeiwen.com/subject/oyhskltx.html