选择排序:

选择排序(Selection sort)是一种简单直观的 排序算法 。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。

Python 实现:

# selection_sort.py

def selection_sort(arr):

count = len(arr)

for i in range(count-1): # 交换 n-1 次

min = i

# 找最小数

for j in range(i, count):

if arr[min] > arr[j]:

min = j

arr[min], arr[i] = arr[i], arr[min] # 交换

return arr

my_list = [6, 23, 2, 54, 12, 6, 8, 100]

print(selection_sort(my_list))

python选择排序_Python实现选择排序相关推荐

  1. python八大选择排序_Python实现选择排序

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

  2. python dataframe排序_python – Pandas DataFrame排序忽略了这种情况

    我在 Python中有一个Pandas数据帧.数据帧的内容来自 here.我稍微修改了"单个"列中第一个字母的大小写.这是我有的: import pandas as pd df = ...

  3. python 对话框开发_python文件选择对话框的操作方法

    python文件选择对话框的操作方法 发布时间:2020-09-28 23:14:29 来源:脚本之家 阅读:76 作者:Bit_We 对于python的tkinter库来说,如果需要弹出文件选择框, ...

  4. python的内置函数列表排序_Python 列表的排序 - sort/sorted

    Python 集合的遍历,推导及 filter/map/reduce 操作 中讲了对集合的 filter, map 和 reduce 操作,那还有 sort 排序呢?像 Java 一样,Python  ...

  5. python对象数组排序_Python NumPy 数组 排序

    1.数组排序 NumPy ndarray对象具有一个名为sort()的函数,该函数将对指定的数组进行排序. 例如: 排序数组:import numpy as np arr = np.array([3, ...

  6. problem a: 简单的整数排序_python里的排序

    本篇文章主要讲: 自定义规则排序 多字段排序 开讲之前,先讲一些简单sorted()或者sort(),两者返回值不同!例如: sorted([5, 2, 3, 1, 4]) # 输出:[1, 2, 3 ...

  7. python八大选择排序_python之八大排序方法

    排序方法        平均情况        最好情况        最坏情况        辅助空间        稳定性 冒泡排序        O(n^2)         O(n)     ...

  8. python列表中字典排序_python中字典排序,列表中的字典排序

    python中字典排序,列表中的字典排序 一.使用python模块:operator import operator #首先要导入模块operator x = {1:2, 3:4, 4:3, 2:1, ...

  9. python字母大小写排序_Python中sorted()排序与字母大小写的问题

    今天我在练习python时,对字典里的键用sorted排序时发现并没有按照预期排序 研究后发现字母大小写会影响排序 首先创建一个字典,键里面的首字母有大写有小写 favorite_digit = { ...

最新文章

  1. 如何用Splunk建立可疑DNS报警系统
  2. 实现接口一种可靠的 DLL 接口实现方案
  3. Game with Telephone Numbers
  4. SQL索引管理器——用于SQL Server和Azure上的索引维护的免费G​​UI工具
  5. 栈溢出脚本_污点分析挖掘漏洞演示——如何在8小时内从零发现cve20120158(word溢出漏洞)...
  6. 路西法第一季为什么会被打伤_海贼王:路飞新招式‘红岩枪’,这次把凯多打伤了,大妈震惊...
  7. 【滤波器】基于matlab GUI高通+低通+带通+带阻FIR滤波器设计【含Matlab源码 699期】
  8. 2022美赛LSTM
  9. fastboot工具使用
  10. c语言变量格式化,C语言新手入门之格式化输出和变量类型
  11. 解决cmd中tomcat中文乱码问题
  12. 基于“大中台+小前台”思想的电商系统总体架构设计
  13. 关于游戏手柄按键的设计
  14. 16bit的pcm双声道转单声道
  15. python——基础3
  16. NSN 内部推荐 -- 不能从电子邮件地址认证身份和来源.
  17. vue中el-dialog弹窗关闭,子组件控制父组件
  18. elementui表格宽度适应内容_解决elementui表格操作列自适应列宽代码示例
  19. 简单几步解决svchost占用内存过高问题
  20. 如何删除vue手脚架创建的自定义配置

热门文章

  1. 如何为编程爱好者设计一款好玩的智能硬件(九)——LCD1602点阵字符型液晶显示模块驱动封装(下)...
  2. 《现代操作系统》笔记 2 线程
  3. mount.nfs: Stale file handle的解决方法
  4. 解决ubuntu 图标消失问题(ubuntu 16)
  5. WSDM2022 | 数据困境: 我们究竟有多了解推荐系统数据集?(附视频、论文及代码)...
  6. 【报告分享】华为-5G时代运营商数据和存储架构白皮书.pdf(附下载链接)
  7. windows下anaconda环境激活报错CommandNotFoundError: Your shell has not been properly configured to use ‘con
  8. 解决datafountain比赛提交.csv文件报错问题
  9. 从实操教学到赛题演练,腾讯专家亲授TI-ONE平台操作攻略!
  10. 大神备赛干货:腾讯广告算法大赛冠军教你玩出大赛新高度