zoukankan      html  css  js  c++  java
  • 算法:2选择排序

    选择排序 

    时间:O(n^2)

    实现功能:将数组元素按从小到大的顺序排列。

    思路:先找出数组中的最小元素,将最小的元素复制给新的数组。

    使用python实现。(python中列表与数组相似)

     1 //找出列表中最小的元素
     2 def findSmallest(arr):
     3     smallest = arr[0] //存储最小的值
     4     smallest_index = 0 //存储最小的索引
     5     for i in range(1,len(arr)):
     6         if arr[i]<smallest:
     7             smallest = arr[i]
     8             smallest_index = i
     9     return smallest_index
    10 
    11 
    12 //选择排序
    13 def selectionSort(arr):
    14     newArr = []
    15     for i in range(len(arr)):
    16         newArr.append(arr.pop(findSmallest(arr)))
    17     return newArr
    18 
    19 print(selectionSort([1,5,9,7,5,3,45,15,26,565,156,25,69226,526]))

    运行结果:

    [1, 3, 5, 5, 7, 9, 15, 25, 26, 45, 156, 526, 565, 69226]

    解析:

    findSmallest()方法返回的是原列表中最小的元素的索引
    第5行:
      循环从1开始,因为smallest,smallext_index默认取值为原列表的第0个元素,不必从0开始比较.

    第16行
    arr.pop(i):表示将arr数组中的第i个元素删除,并返回
    newArr.append(item):将元素item追加到newArr列表后面
     
     
  • 相关阅读:
    福大软工 · 第十次作业
    最终作业:软工实践个人总结
    第三视角Beta答辩总结
    Beta 冲刺(7/7)
    Beta 冲刺 (6/7)
    Beta 冲刺 (5/7)
    Beta 冲刺 (4/7)
    Beta 冲刺 (3/7)
    Beta 冲刺 (2/7)
    福大软工 · 第十次作业
  • 原文地址:https://www.cnblogs.com/doitjust/p/9678208.html
Copyright © 2011-2022 走看看