吉林市建设厅网站,网站建设企业开发公司,佛山关键词排名工具,邯郸房产网最新楼盘需求#xff1a;输入 n 个整数并将这些数字以从大到小和从小到大的顺序输出代码如下#xff1a;bubble_sort_v1 1 #coding:utf-82 #__author__ Diva3 4 # 升序#xff08;从小到大#xff09;5 SORT_TYPE_ASC 16 # 降序#xff08;从大到小#xff09;7 SORT_TYPE_DE…需求输入 n 个整数并将这些数字以从大到小和从小到大的顺序输出代码如下bubble_sort_v1 1 #coding:utf-82 #__author__ Diva3 4 # 升序从小到大5 SORT_TYPE_ASC 16 # 降序从大到小7 SORT_TYPE_DESC -18 9 def swap(slist, ia, ib):
10 tmp slist[ia]
11 slist[ia] slist[ib]
12 slist[ib] tmp
13
14 # 基本的冒泡排序
15 def sort(sort_type, sort_list):
16 i 0
17 size len(sort_list)
18 while i size:
19 j 0
20 while j size - 1:
21 if (sort_type SORT_TYPE_ASC and sort_list[j] sort_list[j 1]) or (sort_type SORT_TYPE_DESC and sort_list[j] sort_list[j 1]):
22 swap(sort_list, j, j 1 )
23 j 1
24 i 1
25
26 if __name__ __main__:
27 mylist [3, 5, 2, 1, 4]
28 sort(SORT_TYPE_ASC, mylist)
29 print(mylist sort as asc: %s % (mylist))
30 sort(SORT_TYPE_DESC, mylist)
31 print(mylist sort as desc: %s % (mylist)) bubble_sort_v2 1 #coding:utf-82 #__author__ Diva3 4 # 升序从小到大5 SORT_TYPE_ASC 16 # 降序从大到小7 SORT_TYPE_DESC -18 9 def swap(slist, ia, ib):
10 tmp slist[ia]
11 slist[ia] slist[ib]
12 slist[ib] tmp
13
14 # 优化排序次数每轮选出当前范围数组内的极值最大最小并不断减少数组范围
15 def sort_v2(sort_type, sort_list):
16 i 0
17 size len(sort_list)
18 while i size:
19 t i
20 j i 1
21 while j size:
22 if(sort_type SORT_TYPE_ASC and sort_list[t] sort_list[j]) or (sort_type SORT_TYPE_DESC and sort_list[t] sort_list[j]):
23 t j
24 j 1
25 if t ! i:
26 swap(sort_list, t, i)
27 i 1
28
29 if __name__ __main__:
30 mylist [3, 5, 2, 1, 4]
31 sort_v2(SORT_TYPE_ASC, mylist)
32 print(mylist sort as asc: %s % (mylist))
33 sort_v2(SORT_TYPE_DESC, mylist)
34 print(mylist sort as desc: %s % (mylist)) bubble_sort_v3 1 #coding:utf-82 #__author__ Diva3 4 # 升序从小到大5 SORT_TYPE_ASC 16 # 降序从大到小7 SORT_TYPE_DESC -18 9 def swap(slist, ia, ib):
10 tmp slist[ia]
11 slist[ia] slist[ib]
12 slist[ib] tmp
13
14 # 再次简化判断条件
15 def sort_v3(sort_type, sort_list):
16 i 0
17 size len(sort_list)
18 while i size:
19 t i
20 j i 1
21 while j size:
22 #if(sort_type SORT_TYPE_ASC and sort_list[t] sort_list[j]) or (sort_type SORT_TYPE_DESC and sort_list[t] sort_list[j]):
23 if (sort_list[t] - sort_list[j]) * sort_type 0:
24 t j
25 j 1
26 if t ! i:
27 swap(sort_list, t, i)
28 i 1
29
30 if __name__ __main__:
31 mylist [3, 5, 2, 1, 4]
32 sort_v3(SORT_TYPE_ASC, mylist)
33 print(mylist sort as asc: %s % (mylist))
34 sort_v3(SORT_TYPE_DESC, mylist)
35 print(mylist sort as desc: %s % (mylist)) 测试结果 转载于:https://www.cnblogs.com/divablogs/p/7510911.html