插入排序C语言实现(在成绩排名中的应用)

本文通过C语言实现插入排序算法,将一个班级按姓名首字母排序的成绩按分数从小到大重新排列,并展示了排序前后的学生数据。插入排序过程中,使用了额外的map数组记录学生在排序后的名次。
摘要由CSDN通过智能技术生成
/*
从小到大排序。
已知一个班级的学生花名册上的成绩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("姓名࿱
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值