python数据结构与算法 31 选择排序

Zabbix-01简单导入MIB文件并测试 这里写自定义目录标题安装 MIB文件启用MIB文件测试MIB文件 MIB文件 MIB代表管理信息库。 MIB文件允许您使用OID(对象标识符)的文本表示。 ##例如: ifHCOutOctets 是OID【1.3.6.1.2.1.31.1.1.1.10】的文本表示 安装 MIB文件 在基于Debian的系统上: # apt install snmp-mibs-downloader # download-mibs 在基于RedHat的系统上: # yum install net-snmp-libs 启用M 阅读详情

选择排序

选择排序是冒泡排序的改进,一次遍历只做一次交换。它在一次遍历中找到最大的元素,结束时放到合适的位置,正如冒泡排序一样,一次遍历后最大的元素就位。第二次遍历后,第二大的元素就位,这样持续进行,需要n-1个遍历来为n个元素排序。

图3显示了一整个的排序过程,一次遍历,剩余最大的元素被选中并正确就位,所以第一次选择了93,第二次选择77,第三次55,等等。后面是代码.


def selectionSort(alist):
  for fillslot in range(len(alist)-1,0,-1):
      positionOfMax=0
      for location in range(1,fillslot+1):
          if alist[location]>alist[positionOfMax]:
               positionOfMax = location
 
      temp = alist[fillslot]
      alist[fillslot] = alist[positionOfMax]
      alist[positionOfMax] = temp
 
alist = [54,26,93,17,77,31,44,55,20]
selectionSort(alist)
print(alist)


可以看出,选择排序和冒泡排序一样多的比较次数,所以它的性能依然是O(n2).不过,因为交换次数的减少,选择排序一般运行得比冒泡要快。在这个例子中,冒泡有20次交换,而选择排序只有8次。

以下测试使用在线运行方式
你的小程序地图功能还只是“摆设”吗?支付宝地图API的深度玩法都在这里了! 🏆本文收录于《滚雪球学支付宝小程序开发》专栏,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 阅读详情

相关推荐

OMI数据获取与可视化:从下载到大气污染分析

本文详细介绍了如何获取与处理OMI卫星数据,以进行大气污染分析。内容涵盖从NASA GES DISC官方源下载对流层NO2数据、使用MATLAB或Python进行月均数据处理与网格化,到利用m_map或cartopy工具进行专业可视化的完整流程。重点解析了数据下载技巧、NetCDF格式处理、地图投影与填色方法,并探讨了时间序列分析与动态可视化等深度应用,为环境研究者提供了一套从数据到洞察的实用指南。

weixin_29210759的博客 269

Codis源码解析——处理slot操作(2)

这一篇我们把处理slot操作的机制讲完。还剩最后两个部分。一个是fillSlot,一个是每一个槽具体的处理方式。本例中有两个group,将之前auto-rebalance过的slot(0-511属于group1,512-1023属于group2)现在将slot 400到500移动到group2。我们之前走到了s.newProxyClient(p).FillSlots(ctx.toSlotSlice(

橙子wj的博客 3019

费斯托SPAN压力传感器的调试

本体为压力传感器,检测气压大小,通过设置参数,在上电上气时对气压进行判断,进而通过自身逻辑的判断,控制传感器的通断,进而控制机械部位的工作与运行;通电之后为如下图所示的样子有三个按键ABEdit键(编辑键、确认键)两步即可轻松连接。

大小曲奇的博客 1万+

数据结构与算法分析_python_C5

数据结构与算法分析(python_Chapter5)

weixin_42754174的博客 185

麒麟V10系统下CoreDump文件自动归档与快速定位指南(附coredumpctl实战)

本文详细介绍了在麒麟V10操作系统下,如何利用systemd-coredump机制和coredumpctl工具实现CoreDump文件的自动化管理与高效调试。内容涵盖从系统架构解析、自动化配置策略,到使用coredumpctl进行快速查询、过滤与深度分析的实战指南,旨在帮助运维人员和开发者快速定位系统崩溃的根本原因,提升问题排查效率。

gg901的博客 220

物联网技术(AIR780E cat1-4G模块+小程序+腾讯云MQTT)驱动的智能井盖系统设计(连载01)

终端设备采用AIR780E模块作为主控器,电子模块有三轴加速度传感器、可燃气体传感器,AIR780E模块(4G模块)通过MQTT通信协议进行数据打包上传至EMQX服务器,在EMQX服务器中,用户可以自行订阅主题和发布主题,小程序通过MQTT通信协议订阅EMQX服务器的主题,服务器通过接收到硬件发布的数据,转发到微信小程序。

leida_3669的博客 2218

2024年Python最新Python数据结构与算法(5)--搜索和排序

❖加密形式保存密码❖仅保存密码的散列值,用户输入密码后,计算散列值并比对;❖无需保存密码的明文即可判断用户是否输入了正确的密码。(通过值计算散列值很简单,但反过来就不可以)❖ 折叠法设计散列函数的基本步骤是将数据项按照位数分为若干段,再将几段数字相加,最后对散列表大小求余,得到散列值❖ 例如,对电话号码62767255可以两位两位分为4段(62、 76、 72、 55)相加(62+76+72+55=265)散列表包括11个槽,那么就是265%11=1所以h(62767255)=1。

2401_84584375的博客 756

Fluent基于低氧舱气体交换仿真(氮气与空气混合)

一、背景概述 模拟低氧舱充氮气和排除混合气体的过程,假设注入95%的氮气,舱内原有气体为空气,压力为标准大气压,温度为300K。观察气体注入过程中,舱内平均氮气和氧气浓度的变化。 二、Fluent设置 Setup 1、General type选择压力基 绝对速度 瞬态 重力勾选 2、Model 能量方程开启 组分运输开启,设置方法如下: 选择后OK,view就会变成Edit,点击Edit。然后再次点击Edit。 将组分中的非氮气氧气和空气的气体移除,右边选项需要将空气放在最后一位。 3、Materi

qq_35535616的博客 1万+

百度广告管家批量载入广告位(BAIDU_CLB_addSlot()、enableAllSlots()、preloadSlots()、fillSlot())

巧用百度广告管家优化多个广告位批量载入 转自:http://woshao.com/article/54a72972742111e0b4f6000c2959fd2a/ 如果你的网站一个页面有5-20个广告位,当页面上广告请求过多,每一个广告都要向服务器请求一次,连续大量的请求导

3000

一周一个Unity小游戏2D反弹球游戏 - 球反弹的方向

本文将实现当球在球板上反弹时,会根据球板移动的方向来给球施加反弹的力,例如当球板往左移动时反弹球,则球应向左上方反弹,若球板往右移动时反弹球,则球应向右上方反弹。

Giver的博客 752

SkillClaw:让大模型 Agent skill在多用户生态中实现群体进化的框架

随着大模型应用步入深水区,基于 LLM 的智能体(Agent)正从单一的“沙盒玩具”转变为处理真实世界复杂任务的生产力工具。然而,现有的 Agent 系统通常面临一个致命瓶颈——部署即固化。为了解决这一问题,最近有一篇新论文**《SkillClaw: Let Skills Evolve Collectively with Agentic Evolver》**提出了一种多用户生态 Agent 群体进化框架。

kakaZhui的博客 263

排序与查找代码总结-数据结构与算法python版

代码来源于 二分查找 普通版 # 二分查找 def binarySearch(alist, item): first = 0 # 查找范围第一项的下标 last = len(alist)-1 # 查找范围最后一项的下标 found = False while first<=last and not found: midpoint = (first + last)//2 # 中间项下标 # 若列表alist的中间项与查找

zhyue77yuyi的博客 922

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

数据结构与算法——python选择排序

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

C_teacher的博客 411

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Python数据结构与算法之选择排序

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

weixin_44953902的博客 161

python算法与数据结构-选择排序算法

代码如下所示: # 定义选择排序函数 def select_sort(list): # 计算需要排序的列表元素个数 n = len(list) # 需要n-1次选择操作 for j in range(n - 1): #需要多少次操作,比实际的n的个数少一次,因为最后一个数就不用当做记录最小值了 # 记录最小值的下标 min_index = j # 未排序区域从j+1到末尾n处,属于未排序区,在未排序区在选出最...

gb4215287的博客 218

小鱼要学数据结构与算法(基于python)—Day12冒泡排序与选择排序

数据结构学习笔记12(北大公开课)目录排序和查找一、知识概览1.1 冒泡排序算法1.2 选择排序算法二、代码实现2.1冒泡排序2.2 冒泡排序改进算法2.3 选择排序算法2.4 输出结果 排序和查找 一、知识概览 本章主要讲解六种排序算法,知识概览如下: 1.1 冒泡排序算法 1.2 选择排序算法 二、代码实现 2.1冒泡排序 # 冒泡排序代码 def bubbleSort(alist): # 趟数从n-1开始一直到1 for passnum in range(len(alist)

weixin_42186072的博客 326

数据结构与算法(四):选择排序的python实现

选择排序 选择排序工作步骤如下: 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。 然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 以此类推,直到所有元素均排序完毕。 实现: def select_sort(alist): '''选择排序''' for j in range(0,len(alist)-1): min_...

weixin_41913008的博客 286

数据结构与算法(Python)(六)—— 排序算法(2)选择排序

选择排序 选择排序(Selection sort)是一种简单直观的排序算法。将数列分为未排序序列和已排序序列两部分,在未排序序列中找到最小(大)元素,存放到数列的起始(末尾)位置作为已排序序列的第一个元素,然后,再从剩余未排序序列中继续寻找最小(大)元素,然后放到已排序序列的末尾(起始)位置。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位...

yhhuang17的博客 333

数据结构与算法(Python版)三十三:冒泡排序和选择排序算法及分析

排序:冒泡排序Bubble Sort 冒泡排序的算法思路在于对无序表进行多趟比较交换, 每趟包括了多次两两相邻比较, 并将逆序的数据项互换位置, 最终能将本趟的最大项就位 经过n-1趟比较交换, 实现整表排序 每趟的过程类似于“气泡”在水中不断上浮到水面的经过 第1趟比较交换, 共有n-1对相邻数据进行比较 一旦经过最大项,则最大项会一路交换到达最后一项 第2趟比较交换时, 最大项已经就位, 需要排序的数据减少为n-1, 共有n-2对相邻数据进行比较 直到第n-1趟完成后, 最小项一定在列表首位, 就无需再

神薯片 3035

Python算法(冒泡排序和选择排序)

Python算法(冒泡排序和选择排序) 冒泡排序:重复地走访过要排序的元素列,依次比较两个相邻的元素,一层一层的将较大的元素往后移动,类似气泡慢慢变大的过程。 算法思想:1.从第一个和第二个开始比较,如果第一个比第二个大,则交换位置;然后比较第二个和第三个,依次类推; 2.经过第一轮循环,最大的数已经排在最后一位,所以重复以上操作,第二大的数会排在倒数第二个位置。 3.则再重复n-1次排序完毕,因...

虎口脱险的博客 551

Python实现的数据结构与算法之快速排序详解

@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 本文实例讲述了Python实现的数据结构与算法之快速排序。分享给大家供大家参考。具体分析如下: 一、概述 快速排序(quick sort)是一种分治排序算法。该算法首先 选取 一个划分元素(partition element,有时又称为pivot);接着重排列表将其 划分 为三个部分:left(小于划分元素pivot的部分)、划...

python函数基础教程 649

Python算法之『 简洁的选择排序』

def select_sort(arr): """ 选择排序 原理:选择一个最大的数,放在最后,在剩余的数中再选择一个最大的数,放在倒数第二个位置,如此反复,直到最后一个也被选择了出来,排序结束。 时间复杂度:O(n^2) :param arr: :return: """ size = len(arr) for i in range(size): # 寻找最小值 min_value = arr[i] .

[ta叫我小白]的专栏 382

数据结构与算法-希尔排序

希尔排序(Shell Sort)是一种基于插入排序的算法,它通过将待排序的元素按照一定的间隔分成若干个子序列分别进行插入排序,逐步缩小间隔直至为1,最终完成整个数组的排序。这种方法可以显著提高插入排序的效率,尤其是在处理大量数据时。本文将深入探讨希尔排序的原理、实现步骤,并通过具体的案例代码详细说明希尔排序的每一个细节。

菜鸟小码的博客 974

Python排序算法(一)冒泡排序、选择排序、插入排序

今天总结一下Python中的排序算法。这篇文章有的排序算法是:冒泡排序、选择排序、插入排序。 冒泡排序 先看一下代码。 ''' 冒泡排序 ''' def bubble_sort(aList): n = len(aList) for i in range(0, n - 1): for j in range(0, n - i - 1): ...

出埃及记 5792

【数据结构与算法】6_python版 _排序算法

本文介绍了三种基础排序算法:冒泡排序、选择排序和插入排序。冒泡排序通过相邻元素比较交换实现排序,最优时间复杂度O(n),最坏O(n²),稳定;选择排序每次选择最小元素放置有序序列末尾,时间复杂度均为O(n²),不稳定;插入排序将无序元素插入有序序列正确位置,最优O(n),最坏O(n²),稳定。文章详细阐述了各算法的原理、代码实现(Python示例)及时间复杂度分析,并比较了它们的效率差异。这些排序算法是计算机科学中处理数据排序的基础方法。

即使是不成熟的尝试,也胜于从不执行的策略。 634

【数据结构与算法Python】排序与搜索_冒泡排序_选择排序_插入排序_快速排序_希尔排序_归并排序

005数据结构与算法Python排序与搜索排序算法的稳定性冒泡排序冒泡排序的分析代码实现时间复杂度选择排序选择排序分析代码实现时间复杂度插入排序代码实现时间复杂度快速排序(工作中常用)代码实现希尔排序希尔排序过程希尔排序的分析代码实现时间复杂度归并排序代码实现时间复杂度常见排序算法效率比较搜索二分法查找二分法查找实现(递归和非递归)必须是有序数组查找元素时间复杂度 排序与搜索 排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。 排序算法的稳定性 稳定性:稳

一梦 884

排序算法的python实现与算法分析——冒泡排序(Bubble Sort)与选择排序(Selection Sort)

1 冒泡排序: 对无序表进行多次比较排序,分别比较两两相邻的数据并互换逆序数据项,第一趟实现最大项就位,第二趟实现次大项就位,经过n-1次实现整表排序。 第一趟排序过程: python实现源码: ##冒泡排序 普通版 def bubblesort(alist): for passnum in range(len(alist)-1,0,-1): for i in range(passnum): if alist[i] > alist[i+1]:

cy15625010944的博客 584
上一篇: python数据结构与算法30 冒泡排序
下一篇: python数据结构与算法 29-1 哈希查找
杀了这个男孩
博客等级 码龄18年 149粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值