加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数据结构--冒泡排序和快速插入排序

发布时间:2020-12-15 04:47:07 所属栏目:百科 来源:网络整理
导读:题目:掌握常用的排序方法,并掌握用高级语言实现排序算法的方法;深刻理解排序的定义和各种排序方法的特点,并能加以灵活应用;了解各种方法的排序过程及其时间复杂度的分析方法。统计成绩:给出n个学生的考试成绩表,每条信息由姓名和分数组成,试设计一个

题目:掌握常用的排序方法,并掌握用高级语言实现排序算法的方法;深刻理解排序的定义和各种排序方法的特点,并能加以灵活应用;了解各种方法的排序过程及其时间复杂度的分析方法。统计成绩:给出n个学生的考试成绩表,每条信息由姓名和分数组成,试设计一个算法:(1)按分数高低次序,打印出每个学生在考试中获得的名次,分数相同的为同一名次;(2)按名次列出每个学生的姓名与分数。

冒泡排序

#include

#include

#include

#include

#define MAXSIZE 4

struct student{

char name[8];

int score;

}stu[MAXSIZE];

int main()

{

int i,j,temp1,No=1;

char temp2[MAXSIZE];

printf("请输入学生的姓名与分数:n");

for(i=0;i

{

printf("姓名:");

scanf("%s",stu[i].name);

getchar();

printf("成绩:");

scanf("%d",&stu[i].score);

}

for(i=0;i

{

for(j=0;j

{

if(stu[j].score

{

temp1=stu[j].score;

stu[j].score=stu[j+1].score;

stu[j+1].score=temp1;

strcpy(temp2,stu[j].name);

strcpy(stu[j].name,stu[j+1].name);

strcpy(stu[j+1].name,temp2);

}

}

}

for(i=0;i

{

if(stu[i].score!=stu[i-1].score) No=i;

else No=No;

printf("第%d名:%s的成绩为%dn",No+1,stu[i].name,stu[i].score);

}

return 0;

}

快速插入:

#include

#include

#include

#define MAXSIZE 4

struct student{

char name[8];

int score;

}stu[MAXSIZE];

int main()

{

int i,key,No=1;

char temp[MAXSIZE];

printf("请输入学生的姓名与分数:n");

for(i=0;i

{

printf("姓名:");

scanf("%s",&stu[i].score);

}

for(i=1;i

{

if(stu[i].score>stu[i-1].score)

{

key=stu[i].score;

strcpy(temp,stu[i].name);

stu[i].score=stu[i-1].score;

strcpy(stu[i].name,stu[i-1].name);

for(j=i-2;key

{

stu[j+1].score=stu[j].score;

strcpy(stu[j+1].name,stu[i].name);

}

stu[j+1].score=key;

strcpy(stu[j+1].name,temp);

}

}

for(i=0;i

{

if(stu[i].score!=stu[i-1].score) No=i;

else No=No;

printf("第%d名:%s的成绩为%dn",stu[i].score);

}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读