三个数比较大小的算法分析

三个数比较大小的算法分析
三个数比较大小的算法分析

三个数比较大小的算法分析

14011087

景宇

算法分析

#第一种算法

x1=input(“input the first number:”)

x2=input(“input the second number:”)

x3=input(“input the third number:”)

if x1>=x2 and x2>=x3:

max=x1

elif x2>=x1 and x2>=x3

max=x2

else:

max=x3

print(“the max is :”max)

时间复杂度O(1)

空间复杂度O(1)

#第二种算法

x1=input(“input the first number:”)

x2=input(“input the second number:”)

x3=input(“input the third number:”)

if x1>=x2:

if x2>=x3:

max=x1

else:

max=x3

else:

if x2>=x3:

max=x2

else:

max=x3

print(“the max is :”max)

时间复杂度O(1)

空间复杂度O(1)

#第三种算法(扩展为5 个数?)

x1=input(“input the first number:”)

x2=input(“input the second number:”) x3=input(“input the third number:”) max=x1

if x2>=max:

max=x2

if x3>=max:

max=x3

print(“the max is :”max)

时间复杂度O(1)

空间复杂度O(1)

#第四种算法(扩展为n 个数?)

n=input(“How many numbers?”)

max=input(“input the a number:”)

for I in range(n-1):

x=input(“input the a number:”)

if x>max:

max=x

print(“the max is :”max)

时间复杂度O(n)

空间复杂度O(1)

#第五种算法(扩展为n 个数,排序?)

arr=[0]*3;#定义数组arr,其中有三个元素,初始值均为0; for i in range(0,3,1):

print("输入数字",i+1);

arr[i]=int(input());

for i in range(0,2,1):#遍历索引i;

for j in range (i+1,3,1):#遍历索引j;

if arr[i]>=arr[j]:#比较大小;

arr[i],arr[j]=arr[j],arr[i];

print("最小数:",arr[0]);

print("最大数:",arr[2]);

print("排序(由小到大):",arr[0]," ",arr[1]," ",arr[2]);

时间复杂度O(n^2)

空间复杂度O(n)

给出算法

#第六种算法:冒泡排序

依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。

def bubble(numbers):

for i in range(len(numbers)):

for j in range(i):

if numbers[j] > numbers[i]:

numbers[j], numbers[i] = numbers[i], numbers[j] print numbers

return numbers

时间复杂度O(n^2)

空间复杂度O(n)

#第七种算法:选择排序

def selection_sort(list2):

for i in range(0, len (list2)):

min = i

for j in range(i + 1, len(list2)):

if list2[j] < list2[min]:

min = j

list2[i], list2[min] = list2[min], list2[i] # swap

时间复杂度O(n^2)

空间复杂度O(1)

#第八种算法:插入排序

if __name__ =='__main__':

l = [4,1,9,13,34,26,10,7,4]

def insert_sort(l):

for i in range(len(l)):

min_index = i

for j in range(i+1,len(l)):

if l[min_index] > l[j]:

min_index = j

tmp = l[i]

l[i] = l[min_index]

l[min_index] = tmp

print(str(l))

print("result: " + str(l))

insert_sort(l)

print("insert_sort success!!!")

时间复杂度O(n^2)

空间复杂度O(1)

相关主题
相关文档
最新文档