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

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

    选择排序 python实现

    简介

    选择排序(Selection Sort),是一种简单直观的排序算法。

    它的工作原理是:第一次从待排序的元素列中选出最小的一个元素,存放在元素列的起始位置,然后从剩余的未排序元素中找到最小元素,放到已排序元素列的末尾。以此类推,直到全部待排序的数据元素的个数为零。

    选择排序是不稳定的排序算法。

    思路

    (以升序为例)依次遍历元素列中的每个元素,找出最小的一个元素,和第一个元素交换

    (1)第一次循环:找到元素列中最小的元素,与起始位置的元素交换;
    (2)第二次循环:找到元素列中第二小的元素,与列中第二个位置的元素交换
    (3)按这种方法,一直交换到元素列有序。

    例子:升序排序元素列[3, 5, 4, 6, 1, 2]

    在这里插入图片描述

    分析

    特点:选择排序是不稳定的,如果存在相同的元素,排序后这几个相同元素间的顺序可能和排序前不同

    时间复杂度:最好、最坏、平均都是O(N2)

    代码

    def selectSort(List):
        size = len(List)
        if size == 0:
            return []
        for i in range(size-1):
            min_index = i
            for j in range(i, size):
                if List[j] < List[min_index]:
                    min_index = j
            List[i], List[min_index] = List[min_index], List[i]
        return List
    

    引用

    百度百科-选择排序
    选择排序

    展开全文
  • 选择排序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 ...
    #选择排序的时间复杂度
      #最优时间复杂度和最坏时间复杂度都是O(n*n)
      #稳定性是不稳定的(考虑升序每次选择最大的情况
    def select_sort(alist):
        n = len(alist)
        for j in range (n-2):
            min_index = j
            for i in range(j+1,n):
                if alist[min_index] > alist[i]:
                    min_index = i
            alist[j],alist[min_index] = alist[min_index],alist[j]
    
    if __name__ == "__main__":
        alist = [25, 64, 53, 23, 89, 77, 17]
        print(alist)
        select_sort(alist)
        print(alist)
    
    C:\Users\zhaoyuan\Anaconda3\envs\pytorch_cpu\python.exe C:/Users/zhaoyuan/PycharmProjects/untitled/数据结构与算法/选择排序.py
    [25, 64, 53, 23, 89, 77, 17]
    [17, 23, 25, 53, 64, 77, 89]
    
    
    展开全文
  • 选择排序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)
    # 冒泡排序
    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)
    
    展开全文
  • 选择排序:每次遍历未排序的列表,标记最值的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...
    """
    选择排序:每次遍历未排序的列表,标记最值的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[j] > l[max_index]:
                max_index = j
    
        temp = l[i]
        l[i] = l[max_index]
        l[max_index] = temp
    
    print(l)
    

    [11, 11, 10, 9, 7, 6, 4, 3, 2, 0, -7]

    展开全文
  • 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实现

    2020-07-22 17:08:08
    选择排序python实现 选择排序 即先找出一个最小元素排在最左边 如果有比他小的元素则交换索引位置 若最小元素不等于所记录的最小元素 则交换两者的值。 以下为代码实现 def selectionSort(arr): for i in range...
  • Python实现选择排序

    2021-01-22 17:57:21
    Python实现选择排序
  • #先看下sort 和 remove 用法 list=[1,9,7,8,5,6,3,2,2,0,4] list.sort() ...#选择排序 list1=[9,7,8,5,6,3,4] arr=[] while list1: res=float("inf") for i in range(len(list1)): if list1[i]<
  • 其执行流程可以概括为:每一趟排序选择当前所有子序列的一个关键字(通常是第一个)作为枢轴量,将子序列中比枢轴量小的移到枢轴前边,比枢轴大的移到枢轴后边,具体过程是一个交替扫描和交换的过程
  • 选择排序的时间复杂度为O(n^2),是不稳定的排序 冒泡排序的时间复杂度最好情况下为O(n),最坏情况下为O(n^2),平均情况下为O(n^2),是稳定的排序 插入排序的时间复杂度最好情况下为O(n),最坏情况下为O(n^2),,平均情况...

空空如也

空空如也

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

选择排序python实现

python 订阅