/*
从小到大排序。
已知一个班级的学生花名册上的成绩name和data,花名册按姓名首字母排序。
求把成绩按从小到大排序后的学生数据。
*/
#include <stdio.h>
#include <stdlib.h>
# define LENGTH 14
void insert_sort(int data[], int length, int map[]);
void main()
{
int i = 0;
int data[LENGTH] = {81,42,15,22,65,91,82,95,11,33,77,88,99,22}; // data数组中的数据为某班花名册上学生的分数
//int length = sizeof(data)/sizeof(data[0]);
int map[LENGTH] = {0}; // map数组中,索引为某学生排完序后的名次,而值为在花名册(即字符串数组)中的位置。
char* name[LENGTH] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n"};
printf("排序前:\n");
for(i = 0; i < LENGTH; i++)
{
printf("姓名:%s 分数:%d\n", name[i], data[i]);
}
insert_sort(data, LENGTH, map);
printf("排序后:\n");
for(i = 0; i < LENGTH; i++)
{
printf("姓名
插入排序C语言实现(在成绩排名中的应用)
最新推荐文章于 2023-01-01 09:51:40 发布
本文通过C语言实现插入排序算法,将一个班级按姓名首字母排序的成绩按分数从小到大重新排列,并展示了排序前后的学生数据。插入排序过程中,使用了额外的map数组记录学生在排序后的名次。
摘要由CSDN通过智能技术生成