• 选择排序




    定义

    选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。

    时间复杂度

    O(n^2 )

    输入

    数组

    输出

    按一定规则排序的 数组

    代码

    Python

    # python
    def findSmallest(arr):
      smallest = arr[0]
      smallest_index = 0
      for i in range(1, len(arr)):
        if arr[i] < smallest:
          smallest = arr[i]
          smallest_index = i
      return smallest_index
    
    def selectionSort(arr):
      newArr = []
      for i in range(len(arr)):
        smallest = findSmallest(arr)
        newArr.append(arr.pop(smallest))
      return newArr
    
    print(selectionSort([5, 3, 6, 2, 10]))
    

    JavaScript

    // JavaScript
    function findSmallest(arr) {
      let smallest = arr[0]
      let smallestIndex = 0
      let arrLength = arr.length
      for (let i = 1; i < arrLength; i++) {
        if (arr[i] < smallest) {
          smallest = arr[i]
          smallestIndex = i
        }
      }
      return smallestIndex
    }
    
    function selectionSort(arr) {
      let newArr = []
      let arrLength = arr.length
      for (let i = 0; i < arrLength; i++) {
        let smallest = findSmallest(arr);
        newArr.push(arr.splice(smallest, 1)[0]);
      }
      return newArr
    }
    
    console.log(selectionSort([5, 3, 6, 2, 10]))
    
  • 相关阅读:
    js发送请求
    GIS小知识
    oracle常见错误
    java异常Exception
    java获取文件路径
    Runnable和Thread的区别
    Hadoop shell命令
    Runtime和Process
    Linux下查看tomcat控制台输出信息
    ajax小知识
  • 原文地址:https://www.cnblogs.com/huangtq/p/15432245.html
Copyright © 2020-2023  润新知