汇编语言#编写两个子程序,分别实现:1)使用选择法排序,按成绩从高到低的进行排序;2)分别统计学生某门课程成绩中各分数段的成绩的人数,并输出
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
另一种解释就是,直接从待排序数组里选择一个最小(或最大)的数字,每次都拿一个最小数字出来,顺序放入新数组,直到全部拿完。再简单点,对着一群数组说:你们谁最小出列,站到最前边;然后继续对剩余的无序数组说:你们谁最小出列,站到刚才那位的后边;再继续刚才的操作,一直到最后一个。现在数组有序了,从小到大。
2、 选择排序思路
一趟遍历记录最小的数,放到第一个位置;
再一趟遍历记录剩余列表中最小的数,继续放置;
假如,有一个无须序列A=[6,3,1,9,2,5,8,7,4],选择排序的过程应该如下:
第一趟:选择最小的元素,然后将其放置在数组的第一个位置A[0],将A[0]=6和A[2]=1进行交换,此时A=[1,3,6,9,2,5,8,7,4];
第二趟:由于A[0]位置上已经是最小的元素了,所以这次从A[1]开始,在剩下的序列里再选择一个最小的元素将其与A[1]进行交换。即这趟选择过程找到了最小元素A[4]=2,然后与A[1]=3进行交换,此时A=[1,2,6,9,3,5,8,7,4];
第三趟:由于A[0]、A[1]已经有序,所以在A[2]~A[8]里再选择一个最小元素与A[2]进行交换,然后将这个过程一直循环下去直到A里所有的元素都排好序为止。这就是选择排序的精髓。因此,我们很容易写出选择排序的核心代码部分,即选择的过程,就是不断的比较、交换的过程。
整个选择的过程如下图所示:
实验步骤:
1、使用记事本等编辑软件编写程序源代码,并保存为asm文件。
以下为程序源代码:
DATA SEGMENT
SCORE DB 73,81,86,34,80,93,65,77
COUNT EQU $-SCORE
STU DB 5 DUP(0)
STRING1 DB 'SCORE 0~59: