原文地址添加链接描述

分类目录——数据结构笔记

每一步在未排序部分去比较当前标记的最小值(初始化为第1个)与当前值的大小,更新(或不跟新)最小值的索引,维护的是一个最小值的索引

每一轮找一个最小值,替换未排序部分最开始的值与标记的最小值

插入排序也是将序列分为前后两个部分,前面有序部分,后面无序部分

  • 实现

    def selectsort(alist):n = len(alist)for i in range(n-1):index_min = ifor j in range(i+1, n):if alist[j]<alist[index_min]:index_min = jalist[i], alist[index_min] = alist[index_min], alist[i]
    
  • 测试

    if __name__ == '__main__':ll = [3,6,2,4,7,5,8,1,0]print(ll)selectsort(ll)print(ll)
    
  • 时间复杂度

    • 最优时间复杂度:O(n^2)
  • 最坏时间复杂度:O(n^2)

    • 稳定性:不稳定(考虑升序每次选择最大的情况)

数据结构笔记:选择排序相关推荐

  1. 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...

    #include #include void SelectSort(int *a,int n);//预声明要调用的函数 int main(void) { int k; int x[]={,,,,,,, ...

  2. 数据结构 - 简单选择排序法

    数据结构 - 简单选择排序法 在之前的博文里已经介绍过排序的两个基本方法: 双重循环法和冒泡排序法. 基本思想 其实上面两种方法的基本思想都是一样的: 就是将排序步骤分成两层循环, 在内层的每1个循环 ...

  3. 数据结构-简单选择排序(C语言)

    文章目录 1.基本思想: 2.例子讲解: 3.代码实例C语言: 4.时间复杂度分析 1.基本思想: 第i趟排序开始时,当前有序区和无序区分别为R[0-i-1],R[i-n-1] (0<=i< ...

  4. 数据结构 - 树形选择排序 (tree selection sort) 具体解释 及 代码(C++)

    树形选择排序 (tree selection sort) 具体解释 及 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 算法逻辑: 依据节点的大小, ...

  5. 数据结构之——选择排序

    选择排序的基本思想为:每一趟(例如第i趟)在后面的n-i+1(i=1,2,3,-...,n-1)个待排序元素中选取关键字最小的元素,作为有序序列的第i个元素,直到n-1趟做完,待排序元素只剩下一个,就 ...

  6. 算法与数据结构(选择排序)

    选择排序 Select Sort 从待排序序列中选出最小(或最大)元素,放入新建的有序序列中,并将其从原无序序列移除.不断重复直到无序序列最终没有元素剩余 选择排序规则: 总共要进行 n-1 次循环 ...

  7. 数据结构之选择排序:堆排序

    选择排序:堆排序 思维导图: 堆的概念: 堆的初始化: 堆排序的算法思想: 堆排序代码实现: 堆排序的插入: 堆排序的删除: 堆排序的性能: 思维导图: 堆的概念: 根>=左右孩子节点的顺序存储 ...

  8. 数据结构之选择排序:直接选择排序

    选择排序:直接选择排序 思维导图: 选择排序的基本思想: 选择排序的代码实现: 演示: 选择排序的性能: 思维导图: 选择排序的基本思想: 选择排序的代码实现: void SelectSort(int ...

  9. java数据结构之选择排序

    作为java排序算法中的一种经典的排序算法,选择排序的思想还是比较容易理解的,其主要的排序过程为: 每一趟从待排序记录中选出最小元素,顺序放在已排好序的最后,直到全部记录排序完毕.也就是:每一趟在n+ ...

  10. Python数据结构:选择排序

    选择排序 先遍历一遍找到最小的,然后再遍历一遍找到第二个最小的- 先写一个最简单版的 def select_sort_simple(li):li_new = []for i in range(len( ...

最新文章

  1. 2022-2028年中国芯片封测行业深度调研及投资前景预测报告(全卷)
  2. LeetCode 845. 数组中的最长山脉
  3. Linux下NFS(网络文件系统)的建立与配置方法
  4. ubuntu上的wordpress文章的本地存储位置
  5. everything便携版和安装版区别_什么是超极本?超极本和笔记本的区别科普知识...
  6. (百度云服务器的)域名不加www可以访问,添加就不能访问 (添加域名绑定)- 解决篇
  7. Android开发笔记(六十三)HTTP访问的通信方式
  8. 8.3、Spring Profiles 功能及内部原理
  9. python和java哪个好-Python和Java哪个好?有什么区别?
  10. Android虚拟机使用摄像头(命令行)
  11. IL汇编语言介绍(译)
  12. (C语言实现)栈求表达式的值(实数范围内)
  13. 9.2. switchport trunk encapsulation dot1q 提示 invaild input at^marker.
  14. Android 创建淡入淡出动画的详解
  15. CSS 列表样式 (ul)
  16. Android Wifi小记 (2)
  17. 戴尔笔记本win10系统恢复出厂设置
  18. 码云上传本地文件夹,码云只能上传20个文件的突破方法
  19. 2016广东工业大学第一次月赛补题
  20. 视壮科技:VS-RK3399简单的I2C 功能介绍

热门文章

  1. linux代码之spin lock
  2. 【JavaScript】懒加载
  3. F5LTM(一)逻辑关系图
  4. 设计模式学习--观察者模式(Observer Pattern)
  5. NDT(正态分布变换)算法学习
  6. Debian搭建ftp服务并使用虚拟账户登录
  7. python中import string是什么意思_python string是什么
  8. 猫眼电影MySQL数据库怎么写_MySQL简要分析猫眼电影TOP100榜
  9. 921天,从小厂到入职阿里
  10. Java8新特性之Joining