冒泡、插入、选择--三种排序
来源:互联网 发布:广州移动宽带 知乎 编辑:程序博客网 时间:2024/06/09 23:33
一、冒泡排序
算法思路:两两比较相邻记录之间关键字,如果反序则交换,直到没有反序的记录为止。
具体代码:
import randomdata=[]n=int(raw_input())for re in range(0,n): a=random.randint(1,1000) data.append(a) # data[re] = aprint datafor i in range(0,n): for j in range(i+1,n): if data[i] >= data[j]: temp =data[j] data[j]=data[i] data[i]=tempprint datasum = 1for i in range(0,len(data)-1): if data[i]>data[i+1]: sum = 0 breakif sum == 1: print 'TRUE'else: print 'FALSE'
输出效果:
9[682, 494, 706, 113, 928, 600, 639, 111, 119][111, 113, 119, 494, 600, 639, 682, 706, 928]TRUE
二、插入排序
算法思路:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表包含一个元素,无序表中包含n-1个元素。排序过程就是每次从无序表中取出一个元素,将其插入到有序表中的合适位置,使之成为新的有序表,重复n-1次即可完成排序过程。排序过程类似打扑克牌时整理手中牌的过程。
具体代码:
import randomn = int(raw_input())a = []for re in range(n): b=random.randint(1,n*n) a.append(b)print afor i in range(0,len(a)): x = a[i] j=i-1 while j>=0 and a[j]>x : a[j+1]=a[j] j=j-1 a[j+1]=xprint atemp = 1for i in range (0,len(a)-1): if a[i]>a[i+1]: temp = 0 breakif temp == 1: print 'TRUE'else: print 'FALSE'
输出效果:
8[24, 44, 6, 61, 50, 20, 51, 9][6, 9, 20, 24, 44, 50, 51, 61]TRUE```
三、选择排序:
算法思路:首先,找到数组中最小的那个元素;其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换);再次,在剩下的元素中找到最小的元素。将它与第二个元素交换位置。如此往复,直到将整个数组排序。
代码实现:
import randoms = []n = int (raw_input())for i in range(n): b = random.randint(1,n*n) s.append(b)print sfor i in range(0,len(s)-1): index = i for j in range(i+1,len(s)): if s[j]<s[index]: index = j temp = s[i] s[i] = s[index] s[index] = tempprint ssum = 1for i in range(0,len(s)-1): if s[i] > s[i+1]: sum = 0 breakif sum == 1: print 'TRUE'else: print 'FALSE'
输出结果:
8[56, 22, 25, 51, 64, 11, 12, 20][11, 12, 20, 22, 25, 51, 56, 64]TRUE
阅读全文
0 0
- 三种基本排序(冒泡,选择,插入)
- 三种排序方法:插入、冒泡、选择
- 冒泡、选择、插入三种排序
- 冒泡、插入、选择--三种排序
- 三种基础排序(冒泡、选择、插入排序)
- java:三种经典大排序汇总,冒泡,插入,选择
- Java三种常见的排序算法:冒泡,选择,插入
- 数据结构 三种简单的排序(插入、选择、冒泡)
- 三种低级排序方法(冒泡 选择 插入)
- 排序的三种方式(冒泡,插入,和选择)
- 三种基本的排序算法:选择,插入,冒泡
- 三大基本排序:选择、冒泡、插入
- 排序:冒泡、插入、选择三体合一
- 三大基本排序冒泡、插入、选择
- 三大基本排序--选择、冒泡、插入
- 三大排序:选择排序,冒泡排序,插入排序
- 三种基本排序-冒泡排序、直接插入排序、选择排序
- 三种基本排序-冒泡排序、直接插入排序、选择排序
- 2017第121届中国进出口商品交易会(广交会)-第二期会刊(参展商名录)
- Android中更新UI的四种常用方式
- 【七夕专题】七夕不做单身汪
- 数据结构--线性表的顺序表示(顺序表)
- 简述设计模式之简单工厂/工厂方法
- 冒泡、插入、选择--三种排序
- Java内存模型
- LintCode:二叉树的最大节点632
- mysql 悲观锁和乐观锁
- 如何快速地搭建一个简单的网站(Appserv+MySQL)
- 玲珑杯Round20PE
- IO-实例操作
- 做了这么多年的技术,你有写过博客吗?
- recyclerView的分割线