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

    2019-08-23 18:16:27
    Python 选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,...

    Python 选择排序
    选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
    菜鸟教程的图很清楚:https://www.runoob.com/python3/python-selection-sort.html

    def chose_sort(in_numbers,l=0):
        if len(in_numbers) < l+1:
            return in_numbers
        else:
            temp = min(in_numbers[l:])
            index = in_numbers.index(temp)
            in_numbers[l],in_numbers[index] = in_numbers[index], in_numbers[l]
            l += 1;
            return chose_sort(in_numbers, l)
    #测试
    aa = [12,334,122,567,6,57,88,655,1]
    print(chose_sort(aa))
    
    展开全文
  • 选择排序 python

    2020-05-25 15:00:47
    首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 初始状态:无序区为R[1..n...
    '''
    首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
    
    初始状态:无序区为R[1..n],有序区为空;
    第i趟排序(i=1,2,3…n-1)开始时,当前有序区和无序区分别为R[1..i-1]和R(i..n)。该趟排序从当前无序区中-选出关键字最小的记录 R[k],将它与无序区的第1个记录R交换,使R[1..i]和R[i+1..n)分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区;
    n-1趟结束,数组有序化了。
    '''
    
    
    def selectionSort(list):
        for i in range(len(list) - 1):
            minindex = i
            for j in range(i + 1, len(list)):
                if list[minindex] > list[j]:
                    minindex = j
            list[i], list[minindex] = list[minindex], list[i]
        print(list)
    
    
    if __name__ == '__main__':
        a = [12, 34, 15, 2, 45, 48, 231, 5, 13]
        selectionSort(a)
    
    
    展开全文
  • 选择排序Python

    2020-04-07 13:27:24
    先找到数组中最小的元素,与起始位置交换,然后寻找下一个最小元素,与排序好的位置的下一个元素交换。 1.先寻找数组中最小的元素与第一个进行交换。 2.寻找接下来未排序的数组中最小的元素,然后与已排序的下一个...

    先找到数组中最小的元素,与起始位置交换,然后寻找下一个最小元素,与排序好的位置的下一个元素交换。

    1.先寻找数组中最小的元素与第一个进行交换。
    2.寻找接下来未排序的数组中最小的元素,然后与已排序的下一个元素进行交换。
    3.n-1趟结束,数组元素有序化。

    def selectionSort(arr):
    	
    	for i in range(len(arr)-1):
    		min_idx = i
    		for j in range(i,len(arr)):
    			if arr[j] < arr[min_dex]:
    				min_dex = j
    		arr[i],arr[min_dex] = arr[min_dex],arr[i]
    		
    arr = [64, 25, 12, 22, 11] 
    selectionSort(arr)
    
    展开全文
  • 冒泡排序,选择排序python冒泡排序冒泡排序普通冒泡排序优化选择排序选择排序普通选择排序优化 冒泡排序 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果...

    冒泡排序

    冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
    作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书里出现的感觉一样,每次都在第一页第一位,所以最熟悉。冒泡排序还有一种优化算法,就是立一个 flag,当在一趟序列遍历中元素没有发生交换,则证明该序列已经有序。但这种改进对于提升性能来说并没有什么太大作用。

    1. 算法步骤

    比较相邻的元素。如果第一个比第二个大,就交换他们两个。

    对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。

    针对所有的元素重复以上的步骤,除了最后一个。

    持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
    2. 动图演示
    在这里插入图片描述

    冒泡排序普通

    lst=[3,12,5,9,4,6,10,1]
    for i in range(len(lst)):
        for j in range(i + 1, len(lst)):
            if lst[i] > lst[j]:
                lst[i], lst[j] = lst[j], lst[i]

    冒泡排序优化

    lst=[3,12,5,9,4,6,10,1]
    for i in range(len(lst)):
        flag = False
        for j in range(len(lst)-1-i):
            if lst[j] > lst[j+1]:
                lst[j],lst[j+1]=lst[j+1],lst[j]
                flag=True
        if not flag:
                break
    print(lst)

    选择排序

    选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。

    1. 算法步骤

    首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置

    再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

    重复第二步,直到所有元素均排序完毕。

    1. 动图演示

    在这里插入图片描述

    选择排序普通

    lst=[3,12,5,9,4,6,10,1]
    for i in range(len(lst)-1):
        temp=i
        for j in range(i+1,len(lst)):
          if lst[temp] >lst[j]:
              temp=j
        lst[i],lst[temp]=lst[temp],lst[i]
    print(lst)

    选择排序优化

    lst=[3,12,5,9,4,6,10,1,2]
    for i in range(len(lst)//2):
        minindex=i
        maxindex= -i-1
        for j,v in enumerate(lst[i:],i):
            if v>lst[maxindex]:
                maxindex=j
            if v<lst[minindex]:
                minindex=j
        if minindex !=i:
            lst[i],lst[minindex]=lst[minindex],lst[i]
        if maxindex != -i-1:
            lst[-i-1],lst[maxindex]=lst[maxindex],lst[-i-1]
            if i==len(lst)+ maxindex:
                maxindex=minindex
    print(lst)

    此选择优化版有BUG,以后再改

    展开全文
  • 选择排序 python实现

    2020-04-13 13:50:05
    @[TOC]选择排序 python实现 简介 选择排序(Selection Sort),是一种简单直观的排序算法。 它的工作原理是:第一次从待排序的元素列中选出最小的一个元素,存放在元素列的起始位置,然后从剩余的未排序元素中找到...
  • 选择排序python代码

    2018-05-16 20:26:44
    排序算法中,选择排序非常常见,本资源是选择排序python代码
  • 冒泡、插入、选择排序Python3代码实现 仅供参考 文章目录冒泡、插入、选择排序Python3代码实现冒泡排序插入排序选择排序 冒泡排序 class BS(object): def bubble_sort(self, list_num): for i in range(len(list_...
  • 选择排序python版(课堂笔记) 《算法与数据结构-综合提升》听课笔记之排序算法 my_list = [5,6,9,8,3,2,1,4,7,10,464,55,9,55,68454,86,22] for i in range(len(my_list)): min_idx = i for j in range(i+1, ...
  • 排序算法值选择排序 之前那篇文章的冒泡排序是比较容易理解的,但是实际情况下正常人一般不会这么做的。因为做了太多的无用工作,交换工作。因为并不能确定那个数最终就在那个位置,所以替换工作根本就不需要做。一...
  • 选择排序python实现

    2020-04-06 13:01:53
    #选择排序的时间复杂度 #最优时间复杂度和最坏时间复杂度都是O(n*n) #稳定性是不稳定的(考虑升序每次选择最大的情况 def select_sort(alist): n = len(alist) for j in range (n-2): min_index = j for i in ...
  • 选择排序Python实现

    千次阅读 2019-07-01 23:15:15
    # 冒泡排序 x =[1,2,6,0.3,2,0.5,-1,2.4] n =len(x) for i in range(n): for j in range(i): if x[j] > x[i]: x[i],x[j] =x[j],x[i] print(x)
  • 选择排序Python3.6

    2019-02-20 10:43:02
    /usr/bin/env python # encoding: utf-8 """ @Company:华中科技大学电气学院 @version: V1.0 @author: Victor @contact: 1650996069@qq.com 2018--2020 @software: PyCharm @file: SelectionSort....
  • 选择排序:每次遍历未排序的列表,标记最值的index,最终交换最值和表头的值 """ l = [2, 9, 10, 11, 3, 7, 4, 0, 6, -7, 11] for i in range(len(l) - 1): max_index = i for j in range(i + 1, len(l)): if l...
  • 选择排序 """ 选择排序是记录最小值的下标 先拿着一个元素进行元素对比,找到最小的元素,把这个最小的元素放到最前面,然后在从剩余的元素中继续 寻找最小的元素,然后放在已经排序过的序列末尾 """ def sort_list...
  • def SelectSort(nums): n = len(nums) for i in range(0, n-1): min_pos = i for j in range(i+1, n): if nums[min_pos]>nums[j]: min_pos = j if ...
  • 选择排序是将整个列表分成两部分,一部分有序,一部分无序 升序以前半部分有序,后半部分无序为例 第一次遍历选择整个列表最小的的数,与第一个数交换位置,这样第一个数就是有序的,剩下的无序, 第二次遍历,从...
  • 选择排序python

    2016-07-06 21:58:53
    # -*- coding: utf-8 -*- """ selection Sort Author : Date : 2016-07-06 Version: 1.0 """ def selectionSort(olist): length = len(olist) for i in range(length-1): minPosition = i
  • 选择排序 将无序列表变为有序列表 每次从列表中找到最大/最小的元素,依次放入新列表中 每次查找最小元素时,所需要的时间都为O(n),共需查找n次,则需要的总时间位O(n×n),即O(n²) 【n+(n-1)+(n-2)+…+2+1 = (1+...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,226
精华内容 1,690
关键字:

选择排序python

python 订阅