5.3 插入排序 课件(共11张PPT)

资源下载
  1. 二一教育资源

5.3 插入排序 课件(共11张PPT)

资源简介

(共11张PPT)
5.3数据排序
——插入排序
插入排序
有一个已经有序的数据序列,在这个已经排好的数据序列中插入一个数,要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法
——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序。
算法思想
插入排序
如一组数据(n=5)15,54,8,45,21,其升序的排序过程如下:
初始态 15
第1遍加工
第2遍加工
第3遍加工
第4遍加工
15 54
8 15 54
8 15 45 54
8 15 21 45 54
插入排序
插入排序
插入排序
插入排序
插入排序
1.现有1个有序数数列为: 7,10,13,16,19。有一个数 14,插入上述有序序列,从而得到一个新的有序序列为: 7,10,13,14,16,19。
a=[7,10,13,16,19]
x=int(input("请输入待插入数:"))
print("原始数据为:",a)
i=4
#先给列表 a 最后增加一个空值a.append(0)
while _______________:
________
i=i-1
a[i+1]=x
print("插入后数据:",a)
a[i]>x and i>=0
a[i+1]=a[i]
插入排序
2.小王根据上述算法,编写了一个 Python 程序,运行界面如图所示。生成 n 个范围是 1~99 之间的随机整数,用插入排序将待排序数据按升序排序后输出。
import random
n=10
a=[random.randint(1, 99)for i in range(n)]
print("排序前数据:",a)
for i in range(1,n):
tmp=a[i]
j=i-1
while __________________:
a[j+1]=a[j]
j=j-1
____________
print("排序前数据:",a)
a[j]>tmp and j>=0
a[j+1]=tmp
课堂练习
小明编写了一个Python程序,功能如下:运行程序,随机产生n个随机整数,并显示排序前数据,且输出经过上述排序算法后的数据,运行结果如图所示。
实现上述功能的Python代码如下,但加框处代码有错,请改正。
import random
n=10 #变量n存储待排序数据个数
a=[random.randint(1,99)for i in range(n)]
print("待排序数据:",a)
for i in range(1,n):
t=a[i]
j=i-1
while ta[j]=a[j+1]
j=j-1
if j<0:
break
a[j]=t
print("排序后数据:",a)
a[j+1]=a[j]
a[j+1]=t
End
Thank you

展开更多......

收起↑

资源预览