python中对列表元素大小排序(冒泡排序法和选择排序法)
前言:
排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,
重新排列成一个关键字有序的序列。本文主要讲述python中经常用的两种排序算法,选择排序法和冒泡排序
法及其区别。通过对列表里的元素大小排序进行阐述。 一,选择排序法
- 从第一个位置开始比较,找出最小的,和第一个位置互换,开始下一轮。
lt = [3, 5, 2, 1, 8, 4]
#求出lt的长度
n = len(lt)
#外层循环确定比较的轮数,x是下标,lt[x]在外层循环中代表lt中所有元素
for x in range(n-1):
#内层循环开始比较
for y in range(x+1,n):
#lt[x]在for y 循环中是代表特定的元素,lt [y]代表任意一个lt任意一个元素。
if lt[x]>lt[y]:
#让lt[x]和lt列表中每一个元素比较,找出小的
lt[x],lt[y]=lt[y],lt[x]
print(lt)
二,冒泡排序法排序
- 从左到右,数组中相邻的两个元素进行比较,将较大的放到后面。
lt = [3, 5, 2, 1, 8, 4]
n= len(lt)
for x in range(n-1):
for y in range(n-1-x):
if lt[y]>lt[y+1]:
lt[y],lt[y+1]=lt[y+1],lt[y]
print(lt)
选择排序法和冒泡排序法的区别:
- 冒泡排序是比较相邻位置的两个数,而选择排序是按顺序比较,找最大值或者最小值;
- 冒泡排序每一轮比较后,位置不对都需要换位置,选择排序每一轮比较都只需要换一次位置;
- 冒泡排序是通过数去找位置,选择排序是给定位置去找数;
python中对列表元素大小排序(冒泡排序法和选择排序法)的更多相关文章
- Python 中删除列表元素的三种方法
列表基本上是 Python 中最常用的数据结构之一了,并且删除操作也是经常使用的. 那到底有哪些方法可以删除列表中的元素呢?这篇文章就来总结一下. 一共有三种方法,分别是 remove,pop 和 d ...
- C语音中最简单的排序冒泡排序和选择排序代码实现(非指针)
#include<stdio.h> int main() { int a[5] = { 2,5,7,3,-1 }; int n = sizeof(a) / sizeof(a[0]);//元 ...
- java12-6 冒泡排序法和选择排序法
1.冒泡排序法 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处 分析: 第一次比较排序的结果:会把其中最大的数据排到最大的索引处 第二次比较排序后的结果:因为第一次已经把最大的一个 ...
- C语言实现冒泡排序法和选择排序法代码参考
为了易用,我编写排序函数,这和直接在主调函数中用是差不多的. 我认为选择排序法更好理解!请注意 i 和 j ,在写代码时别弄错了,不然很难找到错误! 冒泡排序法 void sort(int * ar, ...
- python中修改列表元素的方法
一.在for循环中直接更改列表中元素的值不会起作用: 如: l = list(range(10)[::2]) print (l) for n in l: n = 0 print (l) 运行结果: [ ...
- Python中对列表排序实例
Python中对列表排序实例 发布时间:2015-01-04 09:01:50 投稿:junjie 这篇文章主要介绍了Python中对列表排序实例,本文给出了9个List的排序实例,需要的朋友可以参考 ...
- python中的列表及numpy数组排序
一.列表排序 # python中对列表排序有sort.sorted两种方法,其中sort是列表内置方法,其帮助文档如下:In [1]: help(sorted) Help on built-in f ...
- Python实现 -- 冒泡排序、选择排序、插入排序
冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 冒泡排序的原理: 比较两个相邻的元素,如果第一个比第二个大,就交换他们 对每一对相邻的元素做同样的工作,从开始第 ...
- julia与python中的列表解析.jl
julia与python中的列表解析.jl #=julia与python中的列表解析.jl 2016年3月16日 07:30:47 codegay julia是一门很年轻的科学计算语言 julia文档 ...
随机推荐
- CentOS7 - 安装 VirtualBox
参考资料 最新的可用安装包可以从这里下载 VirtualBox 是 x86 硬件虚拟化产品,功能上与 VMware Server.KVM.及 Xen 类似,但是 VirtualBox 不修改 Linu ...
- 10.jmeter jsr223 javascript 深度比对json object
function sortJSON(data, key, way) { //log.info(" " + key + " ------------------- &quo ...
- 自动发现项目中的url
def check_url_exclude(url): """ 判断url是否需要自动被发现,如果不是则移除 :param url: 自动发现的url :return: ...
- centos 6.x 配置 mail 发送外部邮件详解和 sendmail 使用简介
一.mail基本配置 1.配置:vim /etc/mail.rc 在文件末尾追加以下内容: set from=@.com # 别名<123456789@163.com> set smtp= ...
- [AGC028D](dp计数)
题解点我 Code #include <bits/stdc++.h> typedef long long LL; typedef unsigned long long uLL; #defi ...
- [Bzoj1014][JSOI2008]火星人prefix(无旋Treap&hash)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1014 因为涉及到增加和修改,所以后缀数组就被pass掉了,想到的就是平衡树维护hash值 ...
- 使用Anaconda3安装tensorflow,opencv,使其可以在spyder中运行
使用Anaconda5.0.0 1.首选无论你是在cmd键入python,还是在Anaconda Prompt键入python,显示的都是Python3.6.然而在Spyder(tensorflow) ...
- MIT 6.824学习笔记1 MapReduce
本节内容:Lect 1 MapReduce框架的执行过程: master分发任务,把map任务和reduce任务分发下去 map worker读取输入,进行map计算写入本地临时文件 map任务完成通 ...
- SQL 日期格式化与格式转化
日期格式化 Select CONVERT(varchar(), GETDATE(), ): :57AM Select CONVERT(varchar(), GETDATE(), ): // Selec ...
- 攻防世界--Shuffle
测试文件:https://adworld.xctf.org.cn/media/task/attachments/a03353e605bc436798a7cabfb11be073 1.准备 获得信息 3 ...