码迷,mamicode.com
首页 > 编程语言 > 详细

数组排序程序

时间:2018-08-15 22:46:53      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:i+1   位置   执行   大小   倒数   最小   inpu   变量   pen   

1、十个评委给学生打分,规则是去掉最高分和最低分,然后求平均值。

  分析:首先求出最高分和最低分,然后再求和,最后再求平均值。

     先把十个分数看成是一个列表里的元素,求最高分时,先假设第一个最大,然后去跟相邻的比较,如果大就保留,如果小就保留另一个。

     关键是不能引入外值,只能在十个分数里选一个先作为最大的,然后去比较。求最小是同样的道理。

  用while循环写的程序

  

a = []
i = 0
while i<10:
score = int(input("请输入分数:"))
a.append(score)
i+=1
i = 0
score_min = a[0]
score_max = a[0]
score_sum = 0
score_avg = 0
while i<10:
if a[i] > score_max:
score_max = a[i]
if a[i] < score_min:
score_min = a[i]
score_sum = score_sum + a[i]
i +=1
score_avg = (score_sum-score_max-score_min)/8
print("最大的分数是:",score_max)
print("最小的分数是:",score_min)
print("分数的平均值是:",score_avg)

  用for循环写的程序

score_list = []
for i in range(10):
    score = float(input("请输入分数:"))
    score_list.append(score)
score_max = score_list[0]
score_min = score_list[0]
score_sum = 0
for i in range(10):
    if score_list[i] > score_max:
        score_max = score_list[i]
    if score_list[i] < score_min:
        score_min = score_list[i]
    score_sum = score_sum + score_list[i]
score_avg = (score_sum - score_max - score_min)/8
print("去掉最大值:%.2f\t去掉最小值:%.2f\n最终的平均得分是:%.2f"%(score_max,score_min,score_avg))

2、冒泡排序

  分析:加入给一个列表啊 a=[9,8,7,6,5],如果要想从小到大排序,需要第一个位置的数依次跟其他位置的数比较,比相邻的大,就互换位置,最终到最后的位置。五个元素,循环四次才能确定最大的到最后位置,然后剩四个元素不确定顺序,然后再循环比较三次,确定倒数第二个位置,这样最终需要确定四个位置就需要四趟,每一趟就比上一趟少循环一次。

  关键:四趟是一个外大循环,外循环的次数就是列表的长度减去1

     每一趟的循环都比上一趟少一次,是一个根外循环参数先关的内循环,作用是确定大小位置

     内循环的比较,有可能需要交换彼此的位置,所以,要有一个交换的算法,就是引入一个变量c,当a[i]>a[i+1]时,执行

     c = a[i]

     a[i] = a[i+1]

     a[i+1] = c,最后实现前后位置的值互换

  下面是用while循环写的程序

  

a = [9,8,7,6,5]
j = 0
while j<4:
    i = 0
    while i<(4-j):
        if a[i] > a[i+1]:
            t = a[i]
            a[i] = a[i+1]
            a[i+1] = t
        i += 1
    j += 1
print(a)

  下面是用for循环写的程序

  

a = [9,8,7,6,5]
for j in range((len(a)-1)):
    for i in range((len(a)-1)-j):
        if a[i] > a[i+1]:
            c = a[i]
            a[i] = a[i+1]
            a[i+1] = c
    print(a)

 

  

数组排序程序

标签:i+1   位置   执行   大小   倒数   最小   inpu   变量   pen   

原文地址:https://www.cnblogs.com/thoughtful-actors/p/9484263.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!