zoukankan      html  css  js  c++  java
  • Python实现的选择排序算法原理与用法实例分析

    Python实现的选择排序算法原理与用法实例分析

    这篇文章主要介绍了Python实现的选择排序算法,简单描述了选择排序的原理,并结合实例形式分析了Python实现与应用选择排序的具体操作技巧,需要的朋友可以参考下
    选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
    比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。
    具体实现代码如下:    
    #-*- coding: UTF-8 -*-
    import numpy as np
    def SelectSort(a):
      for i in xrange(0,a.size):
        min = a[i]
        p = i
        for j in xrange(i 1,a.size ):
          if min > a[j]:
            min = a[j]
            p = j
        if p != i:
          a[i], a[p] = a[p], a[i]
    if __name__ == '__main__':
      a = np.random.randint(0, 10, size = 10)
      print "Before sorting..."
      print "---------------------------------------------------------------"
      print a
      print "---------------------------------------------------------------"
      SelectSort(a)
      print "After sorting..."
      print "---------------------------------------------------------------"
      print a
      print "---------------------------------------------------------------"

    运行结果:



  • 相关阅读:
    RocketMQ源码 — 十、 RocketMQ顺序消息
    RocketMQ源码 — 九、 RocketMQ延时消息
    RocketMQ源码 — 八、 RocketMQ消息重试
    HDU3439 Sequence
    Cipolla算法学习小记
    BZOJ2286: [Sdoi2011]消耗战
    BZOJ4873 寿司餐厅
    BZOJ1718 [Usaco2006 Jan] Redundant Paths 分离的路径
    BZOJ1123 [POI2008]BLO
    BZOJ3996 TJOI2015线性代数
  • 原文地址:https://www.cnblogs.com/amengduo/p/9586330.html
Copyright © 2011-2022 走看看