检查给定的Python源代码以进行插入排序和选择排序。跑过 在一些小例子上的代码,以证明两者都正确地排序给定 输入
仪器(修改)两个程序来计算数据的比较次数 排序过程中的元素。记录每个比较的数量 为100,200,400和800行输入的三个输入文件中的每一个排序。 继续修改每个排序算法以计算交换次数 数据元素。
记录与之前相同的输入集的交换次数。 输入您修改后的源代码和您记录的比较数量 互换。
我正在尝试将Insersion排序和选择排序结合起来,这样程序就会在一次运行时吐出我需要的所有答案。这是我目前的代码。
import sys
def IS(a,length):
ISComp = 0
ISSwap = 0
minindex = 0
for i in range(1,length,1):
if (a[i] < a[minindex]):
minindex = i
a[0],a[minindex] = a[minindex],a[0]
for i in range(2,length,1):
ISComp += 1
j = i
value = a[j]
while (value < a[j-1]):
a[j] = a[j-1]
j = j-1
a[j] = value
ISSwap += 1
return(ISComp, ISSwap)
def SS(a,length):
SSComp = 0
SSSwap = 0
for i in range(0,length-1,1):
minIndex = i
for j in range(i+1,length,1):
if (a[j] < a[minIndex]):
minIndex = j
SSComp += 1
temp = a[i]
a[i] = a[minIndex]
a[minIndex] = temp
SSSwap += 1
return(SSComp, SSSwap)
def main():
print("Working with File 1...")
file = open("file1","r")
print("For 100 lines of data:")
stringArray = []
for i in range(0,100,1):
stringArray.append(int(file.readline()))
(isc, iss) = IS(stringArray, 100)
(ssc, sss) = SS(stringArray, 100)
print(str(isc) + " InsersionSort Comparisons, ", str(iss) + " InsersionSort Swaps")
print(str(ssc) + " SelectionSort Comparisons, ", str(sss) + " SelectionSort Swaps")
print("For 200 lines of data:")
stringArray = []
for i in range(0,200,1):
stringArray.append(int(file.readline()))
(isc, iss) = IS(stringArray, 200)
(ssc, sss) = SS(stringArray, 200)
print(str(isc) + " InsersionSort Comparisons, ", str(iss) + " InsersionSort Swaps")
print(str(ssc) + " SelectionSort Comparisons, ", str(sss) + " SelectionSort Swaps")
main()
问题是,我不确定在哪里添加ISSwap,ISComp等,以便在运行程序时为我提供正确的答案。每个职能部门在哪里进行比较和互换?