• 排序算法(二)之选择排序


    依照惯例,在写每一篇帖子之前,笔者都会遵循以下几点原则:
      1、如果一个什么都不懂的人都能把这篇文章看懂,那就说明这篇博客通俗易懂
      2、尽量保持排版整齐,让读者阅读起来不是那么累,简单舒服即可
      3、尽可能的保证所写的东西是正确的,若能帮到疑惑中的你一点点小作用,是笔者坚持写下去的动力
    一、选择排序
    什么是选择排序?
    选择排序的原理是什么?
    能不能用python代码敲出一个实例?
    这是接下来这篇文章要讲清楚的三个问题。
    选择排序:从字面意思上来看,是选,说明极有可能是选元素。其实质上就是每一轮选择出一个元素,并调换位置即可。
    接下来,我举个例子,用选择排序的方法,进行升序排列;说白了就是每一轮选出最小的元素而已
    请看如下列表:【11、25、2、88、9、76、43】,我们对它先进行分析
      第一轮,找出最小元素2,把它放在最前面,因此2与11的位置互换,变成 2、25、11、88、9、76、43
            此时,已经选择出最小元素2,那么在后面的元素中,再找出最小的元素
      第二轮,找出最小元素9,把它放在前面,25与9的位置互换,变成 2、9、11、88、25、76、43
            此时,已经选择出元素9,那么继续在后面的元素中找
      第三轮,找出最小元素11,刚好在第一个,不用变,仍然为 2、9、11、88、25、76、43
      第四轮,找出最小元素25,放在最前面,88与25的位置互换,变成 2、9、11、25、88、76、43
            此时已经选择出元素2、9、11、25,还剩三个未选择
      第五轮,找出最小元素43,放在最前面,88和43的位置互换,变成2、9、11、25、43、76、88
    因此,这样就可以经过排序将列表的元素升序排列出来

    看下面的python代码实现:

    def select_Sort(arr):
        for i in range(len(arr) - 1):
            # 记录最小数的索引
            minIndex = i
            for j in range(i + 1, len(arr)):
                if arr[j] < arr[minIndex]:
                    minIndex = j
            # i 不是最小数时,将 i 和最小数进行交换
            if i != minIndex:
                arr[i], arr[minIndex] = arr[minIndex], arr[i]
        return arr
    
    
    li2 = [11, 25, 2, 88, 9, 76, 43]
    print(select_Sort(li2))
    

  • 相关阅读:
    Lua环境
    WebKit
    Net线程间通信的异步机制
    Cucumber入门1 传统流程下的使用
    Windows Server 2008中安装IIS7.0
    WebCore
    百度云计算平台Python环境试用
    认识ASP.NET MVC的5种AuthorizationFilter
    浅谈java中常见的排序
    go语言中goroutine的使用
  • 原文地址:https://www.cnblogs.com/xj-excellent/p/15541975.html
Copyright © 2020-2023  润新知