基础排序默写第一遍

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>基础排序默写第一遍</title>
  </head>
  <body>
    <script>
      // 冒泡排序
      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]) {
              [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
            }
          }
        }
        return arr;
      }
      // 出现的问题:console 单词打错了

      // 二分法查找
      function searching(arr, target) {
        let start = 0;
        let end = arr.length - 1;
        let middleIndex;
        let middleValue;
        while (start <= end) {
          middleIndex = Math.floor((start + end) / 2);
          middleValue = arr[middleIndex];
          if (target === middleValue) {
            return middleIndex;
          } else if (target < middleValue) {
            end = middleIndex - 1;
          } else {
            start = middleIndex + 1;
          }
        }
        return -1;
      }
      // 出现的问题:忘记写输出语句

      // 选择排序
      function selectSort(arr) {
        let minIndex = 0;
        for (let i = 0; i < arr.length - 1; i++) {
          minIndex = i;
          for (let j = i + 1; j < arr.length; j++) {
            if (arr[minIndex] > arr[j]) {
              minIndex = j;
            }
          }
          [arr[minIndex], arr[i]] = [arr[i], arr[minIndex]];
        }
        return arr;
      }
      // 出现的问题:忘记排序流程;

      //快速排序
      function quickSort(arr) {
        if (arr.length <= 1) {
          return arr;
        }
        let middleIndex = Math.floor(arr.length / 2);
        let middle = arr.splice(middleIndex, 1)[0];
        let left = [];
        let right = [];
        for (let i = 0; i < arr.length; i++) {
          if (arr[i] < middle1) {
            left.push(arr[i]);
          } else {
            right.push(arr[i]);
          }
        }
        return quickSort(left).concat(middle1, quickSort(right));
      }
      // 出现的问题:忘记排序流程;改变了原数组 splice 将中间数剔除出来;
    </script>
  </body>
</html>
posted @ 2022-03-20 19:01  苹果π  阅读(30)  评论(0)    收藏  举报