首页 > 试题广场 >

从键盘接收若干个整数(直接输入回车表示结束),用冒泡法或

[问答题]

从键盘接收若干个整数(直接输入回车表示结束),用冒泡法或选择法进行排序(从小到大),并将排序结果在屏幕上输出。同时估计算法的复杂度。

def bubble(List):
    num=len(List)
    for i in range(0,num-1):
        for j in range(i+1,num):
            if List[i]>List[j]:
                List[i],List[j]=List[j],List[i]
    return List
 
L1=[]
num_str=input('请输入一个需排序的整数:')
while len(num_str) != 0:
    L1.append(int(num_str))
    num_str=input('请输入一个需排序的整数:')
print('排序后结果:', bubble(L1))

冒泡排序:

def bubble(List):
    for i in range(0,len(List)-1):
        for j in range(len(List)-1,i,-1):
            if List[j-1]>List[j]:
                List[j-1],List[j]=List[j],List[j-1]
    return List
L1=[]
num_str=input('请输入一个需排序的整数:')
while len(num_str) != 0:
    L1.append(int(num_str))
    num_str=input('请输入一个需排序的整数:')
print('排序后结果:', bubble(L1))
 

上述两个程序算法的时间复杂度均为O(n 2 ).

发表于 2017-12-28 15:23:10 回复(0)