三个数比较大小的算法分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三个数比较大小的算法分析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] 时间复杂度O(n^2)
空间复杂度O(1)
#第八种算法:插入排序
if __name__ =='__main__':
l = [4,1,9,13,34,26,10,7,4]
def insert_sort(l):# swap
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