zoukankan      html  css  js  c++  java
  • 选择排序



    定义

    选择排序(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]))
    
  • 相关阅读:
    java 枚举类小结 Enum
    hibernate查询
    java装饰者模式理解
    内部类学习
    java使用json将HashMap转化成javabean小例子
    HashMap存储数据赋值javabean简单示例
    java数组转化成集合
    java正则匹配并提取字串
    Windows cmd命令反斜杠问题
    自动化构建工具
  • 原文地址:https://www.cnblogs.com/huangtq/p/15432245.html
Copyright © 2011-2022 走看看