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文档 ...
随机推荐
- Python算法每日一题--002--求众数
给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: [3,2,3]输出: 3示 ...
- Python笔记(十六)_else语句、with语句
else的多种用法 1.try except + else:检测到代码无异常,才执行else 例如: def func(num): count=num//2 while count>1: if ...
- C# 中定义斜杠 \
\ 是转义符 如 \’ 单引号 \” 双引号 \\ 反斜杠 \0 空 \a 警告(产生峰鸣) \b 退格 \f 换页 \n 换行 \r 回车 ...
- 洛谷P5018 对称二叉树——hash
给一手链接 https://www.luogu.com.cn/problem/P5018 这道题其实就是用hash水过去的,我们维护两个hash 一个是先左子树后右子树的h1 一个是先右子树后左子树的 ...
- init函数和匿名函数
init函数: 基本介绍: 每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是说init会在main函数前被调用. 案例说明: //init函数,通常可以 ...
- A Bug’s Life POJ - 2492(种类并查集)
题目链接 每次给出两个昆虫的关系(异性关系),然后发现这些条件中是否有悖论 就比如说第一组数据 1 2 2 3 1 3 1和2是异性,2和3是异性,然后说1和3是异性就显然不对了. 我们同样可以思考一 ...
- 1571. [Usaco2009 Open]滑雪课Ski
传送门 可以想到 $dp$,设 $f[i][j]$ 表示当前等级为 $i$,时间为 $j$ 的最大滑雪次数 显然上课不会上让自己等级降低的课,所以第一维 $i$ 满足无后效性 然后直接枚举 $i,j$ ...
- 查询sqlserver中表信息
ALTER PROCEDURE [dbo].[GetTableInfo] @tableName NVARCHAR(MAX) AS BEGIN SELECT -- CASE -- WHEN col.co ...
- Spring学习笔记(3)——快速入门
项目目录如下: Say.java为主函数通过ApplicationContext创建对象,利用方法ClassPathXmlApplicationContext访问配置文件Applicationcont ...
- 20180119-01-RACSignal的基础
一.获取一个信号的方式 1.单元信号 RACSignal *signal1 = [RACSignal return:@"Some Value"]; RACSignal *signa ...