1. 实验目的
考察是否掌握直接插入排序算法。
2. 实验介绍
?明确排序的基本概念,排序方法的分类。深刻理解排序算法的过程、特点及其依据的原则,并能加以灵活应用。掌握各种排序方法的时间和空间复杂度的分析方法。能从关键字间的比较次数和移动次数分析算法的平均情况和最坏情况的时间性能。理解排序方法“稳定”或“不稳定”的含义,弄清楚在什么情况下要求应用的排序方法必须是稳定的。
3.实验内容
?创建名为 ex080801_01.py 的文件,在其中编写一个顺序表的类,该类必须至少含
有两个成员变量(关键字和其他信息)及相关的基本操作,具体如下。
(1)初始化一个顺序表 SSequenceList。
(2)通过 CreateSequenceListByInput()方法从键盘上将待排序记录输入顺序表
SSequenceList。
(3)调用 InsertSort()方法对序列 SSequenceList 进行排序。
(4)通过TraverseElementSet()方法将排序后的序列SSequenceList输出到屏幕上。
4. 实验步骤与代码
class SortSequenceList:
def __init__(self):
self.SSequenceList = []
self.lenth = 0
def CreateSequenceListByInput(self):
Element = input('请输入要插入的元素(回车继续,#结束):')
while Element != '#':
self.SSequenceList.append(Element)
self.lenth += 1
Element = input('请输入要插入的元素:')
def InsertSort(self):
for i in range(self.lenth):
for j in range(i,self.lenth):
if self.SSequenceList[j] < self.SSequenceList[i]:
self.SSequenceList[i],self.SSequenceList[j] = self.SSequenceList[j],self.SSequenceList[i]
def traver(self):
for i in self.SSequenceList:
print(i,end=' ')
print()
if __name__=='__main__':
S = SortSequenceList()
print('开始初始化......')
S.__init__()
print('初始化完成......')
print('开始创建新列表')
S.CreateSequenceListByInput()
print('新列表为:',end=' ')
S.traver()
print('开始排序')
S.InsertSort()
print('列表排序后为:',end=' ')
S.traver()
5.实验结果
|