精华内容
下载资源
问答
  • 用python实现选择排序

    2017-10-10 20:35:42
    选择排序改进了冒泡排序,每次遍历列表只做一次交换。为了做到这一点,一个选择排序在他遍历时寻找最大的值,并在完成遍历后,将其放置在正确的位置。与冒泡排序一样,在第一次遍历后,最大的项在正确的地方。 第二...

    选择排序改进了冒泡排序,每次遍历列表只做一次交换。为了做到这一点,一个选择排序在他遍历时寻找最大的值,并在完成遍历后,将其放置在正确的位置。与冒泡排序一样,在第一次遍历后,最大的项在正确的地方。 第二遍后,下一个最大的就位。遍历 n-1 次排序 n 个项,因为最终项必须在第(n-1)次遍历之后。+

    这里写图片描述

    def Selection_Sort(alist):
        for fillslot in range(len(alist)-1,0,-1):
            init_position = 0
            for location in range(1,fillslot+1):
                if alist[location] > alist[init_position]:
                    init_position = location
    
            temp = alist[fillslot]
            alist[fillslot] = alist[init_position]
            alist[init_position] = temp
    
    alist = [1,2,35,7,8,9,88,0,444,3]
    Selection_Sort(alist)
    print(alist)

    时间复杂度

    最优时间复杂度:O(n2)
    最坏时间复杂度:O(n2)
    稳定性:不稳定(考虑升序每次选择最大的情况)
    
    展开全文
  • 用Python实现选择排序

    2018-12-16 18:26:43
    选择排序 选择排序(Selection sort)是⼀种简单直观的排序算法。它的⼯作原理如 下。⾸先在未排序序列中找到最⼩(⼤)元素,存放到排序序列的起始位 置,然后,再从剩余未排序元素中继续寻找最⼩(⼤)元素,...

    选择排序

    选择排序(Selection sort)是⼀种简单直观的排序算法。它的⼯作原理如下。⾸先在未排序序列中找到最⼩(⼤)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最⼩(⼤)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

    选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换⼀对元素,它们当中⾄少有⼀个将被移到其最终位置上,因此对n个元素的表进⾏排序总共进⾏⾄多n-1次交换。在所有的完全依靠交换去移动元素的排序⽅法中,选择排序属于⾮常好的⼀种。

    选择排序分析

    排序过程:
    在这里插入图片描述

    代码实现:

    def selection_sort(alist):
    	n = len(alist)
    		# 需要进⾏n-1次选择操作
    	for i in range(n-1):
    		# 记录最⼩位置
    		 min_index = i
    		# 从i+1位置到末尾选择出最⼩数据
    		for j in range(i+1, n):
    			if alist[j] < alist[min_index]:
    				min_index = j
    	 	# 如果选择出的数据不在正确位置,进⾏交换
    		if min_index != i:
    			alist[i], alist[min_index] = alist[min_index], alist[i]
    			
    alist = [54,226,93,17,77,31,44,55,20]
    selection_sort(alist)
    print(alist)
    

    时间复杂度

    • 最优时间复杂度:O(n 2 )
    • 最坏时间复杂度:O(n 2 )
    • 稳定性:不稳定(考虑升序每次选择最⼤的情况)
    展开全文
  • 总结 以上是编程之家为你收集整理的python 实现选择排序全部内容,希望文章能够帮你解决python 实现选择排序所遇到的程序开发问题。 如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。 本图文...

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

    编程之家小编现在分享给大家,也给大家做个参考。

    #coding:utf8

    def sort(start_list):

    num = len(start_list)

    for i in range(num-1):

    min = i

    for j in range((i+1),num):

    if start_list[j] < start_list[min]:

    min = j

    (start_list[i],start_list[min]) = (start_list[min],start_list[i])

    def main():

    start_list = [2,3,6,5,9,8,10,4,12,20,200,12]

    sort(start_list)

    print start_list

    if __name__ == '__main__':

    main()

    以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    总结

    以上是编程之家为你收集整理的python 实现选择排序全部内容,希望文章能够帮你解决python 实现选择排序所遇到的程序开发问题。

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

    展开全文
  • 上一期是文学,所以这一期该讲技术了,上一次讲到冒泡算法,这次再讲一个同样是用来做排序的算法,选择排序算法。说到算法或数学,很多人会有个误解,觉得在生活中根本没用太明显的实际用途,为了说明数学的重要性,...

    上一期是文学,所以这一期该讲技术了,上一次讲到冒泡算法,这次再讲一个同样是用来做排序的算法,选择排序算法。说到算法或数学,很多人会有个误解,觉得在生活中根本没用太明显的实际用途,为了说明数学的重要性,先给大家讲个故事。

    子鱼和朋友小A,周末去一家披萨店吃披萨,点了个12寸的。过了一会服务员说:“不好意思,12寸的披萨没有了,给你们换成两个6寸的披萨,可以吗?”这时,小A诧异的回答:“当然不可以,圆的面积是半径的平方乘以π,你该给我们换成4个6寸的。”(12除2的平方*π= 36π,6除2的平方* π = 9π,所以该换成4个)

    这时服务员一脸问号:“稍等,我跟我们经理说一下。”

    上面这个故事告诉我们数学还是很重要的。

    所以接下来进入我们的主题,用python实现选择排序算法及优化,首先理解下排序算法的定义, “选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。”

    是不是表示看不懂?看不懂就对了,不然看这文章干嘛。

    简单的说,就是有一组数,然后从中选择找出最大的一个,把这个数排到第一个或者最后一个,然后找出第二大的数,排到第二个或者倒数第二个,就这样一直到所有数字都排好为止。

    举个栗子,有这样一组数字[1,2,3,4,5,9,8,7,6],然后按下面方式进行排序:

    [1,2,3,4,5,9,8,7,6] #原始数列

    [9,2,3,4,5,1,8,7,6]#第一次找出最大数9,然后排到第一位

    [9,8,3,4,5,1,2,7,6] #第二次找出余下的最大数8,然后排到第二位

    [9,8,7,4,5,1,2,3,6] #第二次找出余下的最大数7,然后排到第三位

    [9,8,7,6,5,1,2,3,4] #依上面规则逐步递推下去

    [9,8,7,6,5,1,2,3,4]

    [9,8,7,6,5,4,2,3,1]

    [9,8,7,6,5,4,3,2,1]

    [9,8,7,6,5,4,3,2,1]

    [9,8,7,6,5,4,3,2,1]

    明白了原理,接下来用python来实现数学逻辑,代码如下:

    到这里是不是觉得就完成了呢?如果觉得是,你就太年轻了。标题都写了优化,所有当然有优化的方法。

    接下来就说在python代码中如何优化,既然第一次找到了最大数,那是否能在第一次顺便把最小数也找出来,然后把最小数排到最后去,答案当然是可以啦。

    因此,有了以下的优化代码。

    到这里是不是觉得就完成了呢?如果觉得是,你还是太年轻了!那还能怎么优化呢?答案是如果经过一轮比较,发现最小值和最大值相等,那就说明实际上剩下的值都是相等的了。于是,有了以下代码。

    到这里是不是觉得就完成了呢?如果觉得是,你依然太年轻了!还有是一点能优化的地方,就是发现最小值索引值和最大值的索引值不同,但是值相同的情况,这种情况交换等于无用功。因此可以再加一条判断的。这里就不再提供代码了。不然文章太长了。

    今天就到此为止。祝大家周末快乐,端午节快乐!

    展开全文
  • 选择排序算法是一种简单直观的排序算法 通过比较大小,从列表中找到最小的数字,放到列表的顶端。以此类推,只到列表中值按照从小到大的排序。 第一步:找到最小值 '''找出最小''' num = [8,23,6,18,19,17,7] a=0 ...
  • 1、选择排序排序算法的逻辑非常简单,首先搜索整个列表,找到最小项的位置,如果该位置不是列表的第1项,就交换这两个位置的元素。然后从列表的第2个元素开始,重复上述过程,直到算法达到整个过程的最后一个位置,...
  • 选择排序就是遍历一个列表,从第一个开始和后面的进行比较,找到比第一个小的,调换位置。 def sort_list(li): for i in range(len(li)): min_index = i for j in range(i+1,len(li)): if li[min_index]>li...
  • 冒泡排序法 l = [10, 1, 18, 30, 23, 12, 7, 5, 18, 17] for n in range(len(l)-1): for i in range(len(l)-n-1): if l[i] &gt; l[i+1]: l[i],l[i+1] = l[i+1],l[i] ...选择排序法 l = [10...
  • Python实现选择排序

    2021-01-22 17:57:21
    用Python实现选择排序
  • **选择排序**python实现 选择排序算法新的开始python 代码实现小结 python实现 选择排序算法 新的开始 最近又重新翻看了算法的书,本科的时候学习算法完全是为了应付考试,当时书上的算法都是伪代码,有的是C写的...
  • 选择排序,简单而直观,其原理是把序列中的最小值或者最大值找出来放在起始位置,然后再从剩下的序列中找出极值放到起始位置之后,以此类推最后就...用python实现比较简单:def select_sort(items):n = len(items...
  • python实现选择排序

    2018-09-27 11:46:46
    python实现选择排序​ ​ 假设你有一个因为列表,上面记录你歌曲的播放数量,现在需要对音乐列表进行排序,按照播放数量进行依次排序,并放在一个新的列表中。那么我们怎么计算机语言实现呢。选择排序即是每次对...
  • #Python冒泡排序(以升序为例): s = [0.1,3,9,5,2,6] for i in range(0,len(s)-1): for j in range(i+1,len(s)): if s[i]>s[j] : t = s[i] s[i] = s[j] s[j] = t print(s...
  • 最简单的排序有三种:插入排序,选择排序和冒泡排序。它们的平均时间复杂度均为O(n^2),在这里对原理就不加赘述了。贴出源代码:插入排序:1 definsertion_sort(sort_list):2 iter_len =len(sort_list)3 if iter_len...
  • 今天学习的是选择排序实现实现的原理是把当前位置的元素和其它未排序的所有元素比较,满足条件则把索引值记录下来,每次遍历都能选出一个未排序的元素中最大(小)的一个。实现的小技巧是每次比较之后暂时只把...
  • Python实现选择排序算法 选择排序算法的基本思想是:假如一个列表中有n个数据,从列表中选出最小的一个数据与第一位数据进行交换,然后在剩下的数据中从第二位开始选择最小的数据与第二位的数据进行交换,以此类推...
  • 选择排序,简单而直观,其原理是把序列中的最小值或者最大值找出来放在起始位置,然后再从剩下的序列中找出极值放到起始位置之后,以此类推最后就完成排序。...用python实现比较简单: defselect_...
  • 选择排序,简单而直观,其原理是把序列中的最小值或者最大值找出来放在起始位置,然后再从剩下的序列中找出极值放到起始位置之后,以此类推最后就完成排序。...用python实现比较简单: defselect_...
  • 介绍选择排序的思路,并用Python语言实现之。
  • 今天用Python 3版本实现选择排序和冒泡排序。选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中...
  • 1. 冒泡排序: def bubble_sort(list): for i in range(0, len(list)): is_sorted = True for j in range(0, len(list) - i - 1): if list[j] > list[j + 1]: list[j...
  • 用Python实现常见排序算法

    万次阅读 多人点赞 2018-07-04 11:42:52
    排序是比较常用的算法,其实有很多种实现,比如冒泡排序,选择排序,归并排序,希尔排序,快速排序等,今天介绍使用python语言实现这几种排序算法。冒泡排序冒泡排序是最常见到的排序算法,也是大学学习时遇到的第一...
  • 今天用Python 3版本实现选择排序和冒泡排序。选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 413
精华内容 165
关键字:

用python实现选择排序

python 订阅