bcd 19 97

bed 20 97

abc 20 99

之前老是用冒泡排序,感觉方便,写了篇快速排序之后,咱也得用起来,上AC代码

#include

#include

#include

struct student{

char name[101];

int age;

int grade;

};

int partition(struct student *A, int left, int right);

void quicksort(struct student *A, int begin, int end);

int main()

{

struct student students[1001];

int i, n;

while(scanf("%d",&n) != EOF)

{

//学生成绩赋值

for(i = 0; i < n; i ++)

{

scanf("%s%d%d",students[i].name, &students[i].age, &students[i].grade);

}

//快速排序

quicksort(students, 0, n-1);

//打印输出

for(i = 0; i < n; i ++)

{

printf("%s %d %d\n",students[i].name, students[i].age, students[i].grade);

}

}

return 0;

}

void quicksort(struct student *A, int begin, int end)

{

int pivot;

if(begin < end)

{

pivot = partition(A, begin, end);

quicksort(A, begin, pivot - 1);

quicksort(A, pivot + 1, end);

}

}

int partition(struct student *A, int left, int right)

{

struct student stand = A[left];

while(left < right)

{

while(left < right && (A[right].grade > stand.grade || (A[right].grade == stand.grade && strcmp(A[right].name,stand.name) > 0) || (A[right].grade == stand.grade && strcmp(A[right].name,stand.name) == 0 && A[right].age > stand.age ) ) )

{

right --;

}

if(left < right)

{

A[left ++] = A[right];

}

while(left < right && (A[left].grade < stand.grade || (A[left].grade == stand.grade && strcmp(A[left].name,stand.name) < 0) || (A[left].grade == stand.grade && strcmp(A[left].name,stand.name) == 0 && A[left].age < stand.age ) ) )

{

left ++;

}

if(left < right)

{

A[right --] = A[left];

}

}

A[left] = stand;

return left;

}

将10个成绩排序java程序_快速排序——成绩排序相关推荐

  1. 学生成绩查询java版_学生成绩查询系统,基于ssm的JAVA系统

    每天记录学习,每天会有好心情.*^_^* 今天记录的项目是学生成绩查询系统,这个项目是这么回事:介绍了在Internet/WWW环境下构建学生成绩查询系统的设计思路与方法 ,阐述了在学生成绩查询系统中 ...

  2. 简单java程序_简单的Java程序

    简单java程序 Simple java programs are good for assessing the coding skills of a programmer. You will fin ...

  3. 第一段Java程序_借助Win控制命令台编译执行 编辑器Notepad++

    第一段Java程序_借助Win控制命令台编译执行 编辑器Notepad++ 准备代码: 第一次编译: 显然需要先配置环境变量: 先找到java.exe和javac.exe所在的文件夹位置: 此电脑-& ...

  4. 分数统计设计java程序_(windows综合程序)设计一个学生平时成绩统计软件 最后的Java作业...

    1.(windows综合程序)设计一个学生平时成绩统计软件.要求: (1) 录入课程名称(进入系统时录入).学生姓名.学号.成绩.日期(自动生成日期并在界面显示),除第一次外其他次数输入只需要录入学号 ...

  5. dos下编写java程序_在DOS命令行状态下,如果命令java Hello成功运行了程序,那么下面哪些叙述是正确的()...

    [判断题]在JDK命令行开发工具中,用编译程序javac.exe编译生成的文件是二进制可执行文件. [论述题]你认为堂吉诃德是一个怎样的人? [简答题]练习函数 [单选题]下列制度体现商法提高交易效率 ...

  6. JAVA十大排序算法动画_十大排序算法(java实现)

    [前言]最近在重新研究算法,此篇博文供自己复习使用也为方便广大程序员同学!此文代码均为自己实现,通过对比经典解法校验,若有错请读者及时提出! - [对比分析图]首先,我们先来对比分析一下这十大排序算法 ...

  7. qtp启动java程序_转: QTP六脉神剑之调用Java程序

    查看( 1147 ) / 评论( 21 ) 六脉神剑之调用程 序0Xp1zLN_0版权声明:原创作品,转载请以链接方式注明出自http://www.51testing.com/?35,否则将追究法律责 ...

  8. 怎么一键执行java程序_如何快速、低成本、低扰动地运行一段Java代码

    JVM是个运行服务端应用的好VM,但如果你只是想频繁地运行一段Java写的脚本,或者在跑一些辅助性的Java程序比如监控,比如日志收集,这时候的诉求就和平日里的应用不一样了: 1.启动快速,动静小. ...

  9. mysql连接java程序_实现Java连接mysql

    Java连接mysql数据库,代码经过运行准确无误. 下面为实例----> 用数据库操纵工具(例: SQLyogEnt)操纵mysql建表,或dos下建,如下: 数据库名:scutcs 表名:s ...

最新文章

  1. 使用Selenium爬虫进阶
  2. 四则运算 - java实现(叶尚文, 张鸿)
  3. 每日一程-10.五种基本随机数测试-续
  4. 预算为0如何拉用户?类类教你5个独门绝技,并说说一些陷阱!
  5. input自适应_【正点原子FPGA连载】第十一章基于OV5640的自适应二值化实验-领航者ZYNQ之HLS 开发指南...
  6. bzoj 1014 火星人prefix —— splay+hash
  7. 11.python并发入门(part3 多线程与互斥锁)
  8. .NETFramework、C#、VisualStudio 这三者之间关系,你了解吗!
  9. 学习笔记: ES7(ES2016)新功能
  10. 【是程序猿就干了这碗心灵鸡汤】我们这一代人的困惑
  11. KVM虚拟化技术原理简介
  12. 学c语言学生智商要搞么,作为一个学渣,哥来告诉你如果你智商不够该怎么办...
  13. 不安全的文件上传基本原理(Unsafe file upload)
  14. 怎么把ogg音频格式转换为mp3
  15. matlab 实验七,matlab 实验七 数字填图问题
  16. 双螺杆挤出机有哪些系列
  17. 在线教育平台的数据分析——用户的地域分布
  18. android之网络状态判断(wifi和移动网络数据)
  19. 千元级智能门锁性价比革命,欧瑞博小金刚C1全球首发
  20. ABP中使用MySql数据库

热门文章

  1. ubuntu 刚更改默认python3版本后更新包等
  2. http://blog.sina.com.cn/s/blog_4aae007d0100inxi.html
  3. POJ 1001 Exponentiation
  4. Oracle修改机器名后导致监听和console无法启动解决方法参考(转的)
  5. hdu 1232 畅通工程
  6. 51 -leetcode 38 -字符串
  7. mysql 瓶颈诊断_MySQL 监控、性能瓶颈排查
  8. 如果数组最后一项为空删除最后一项和去前面的逗号_手写数组方法
  9. 伸缩菜单----html文件
  10. 微课系列(一):Python列表remove()方法工作原理