跳至正文
View Categories

< 1 min read

综合实战2 #

  1. 排序算法的例题演练
  2. 排序算法的例题拆解
  3. 排序算法的例题实现

收获 #

学完本节内容,可以进一步理解排序算法的实现及应用。

排序算法的例题演练 #

题目描述:
给定包含N个元素的数组a1,a2,a3,…,aN,利用插入排序将其排成升序,
每次拿出未排序部分中的第一个元素,插入到已排序部分中,排在首个不大于这个元素的后面。

输入:
2行
第1行包含1个正整数N(1 < N <= 10000),代表数组元素个数
第2行包含N个整数,空格隔开。
输出;
N-1行,既依次输出每趟选择排序后的数组。
样例输入:
4
4 3 1 2
样例输出:
3 4 1 2
1 3 4 2
1 2 3 4

排序算法的例题拆解 #

1.对输入字符串形式的待排序内容进行数据类型转化

lt=lt.split(' ')#以空格为分割,生成list
print(lt)#打印输出发现split后变成字符串形式的数组
lt=[int(m) for m in lt]#将字符串转化为可处理的i数字形式

2.将每次排序后的结果输出

for i in range(1,l):
    value=lt[i]#保存新的未排序的点的值
    j=i-1#已排序的最后一个数(前一个)
    min_value=lt[i]
    while j>=0 and min_value<lt[j]:
        lt[j+1],lt[j]=lt[j],lt[j+1]
        j-=1
    print(lt)

排序算法的例题实现 #

n=int(input('输入n个整数'))
lt=input('输入待排序的原数组')
lt=lt.split(' ')#以空格为分割,生成list
#print(lt)
lt=[int(m) for m in lt]#将字符串转化为可处理的i数字形式
#print(lt)
l=len(lt)
min_index=0
for i in range(1,l):
    value=lt[i]#保存新的未排序的点的值
    j=i-1#已排序的最后一个数(前一个)
    min_value=lt[i]
    while j>=0 and min_value<lt[j]:
        lt[j+1],lt[j]=lt[j],lt[j+1]
        j-=1
    print(lt)

小结 #

复习巩固几种基础的排序算法
掌握并复现本节的例题

习题 #

  1. 习题1:掌握并实现使用input信息录入后,通过split函数将其转化为可处理的数据类型的程序
  2. 习题2:输入8个整数顺序如下:5,4,6,2,7,9,1,0;输出每次排序后的结果