将10个成绩排序java程序_快速排序——成绩排序
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程序_快速排序——成绩排序相关推荐
- 学生成绩查询java版_学生成绩查询系统,基于ssm的JAVA系统
每天记录学习,每天会有好心情.*^_^* 今天记录的项目是学生成绩查询系统,这个项目是这么回事:介绍了在Internet/WWW环境下构建学生成绩查询系统的设计思路与方法 ,阐述了在学生成绩查询系统中 ...
- 简单java程序_简单的Java程序
简单java程序 Simple java programs are good for assessing the coding skills of a programmer. You will fin ...
- 第一段Java程序_借助Win控制命令台编译执行 编辑器Notepad++
第一段Java程序_借助Win控制命令台编译执行 编辑器Notepad++ 准备代码: 第一次编译: 显然需要先配置环境变量: 先找到java.exe和javac.exe所在的文件夹位置: 此电脑-& ...
- 分数统计设计java程序_(windows综合程序)设计一个学生平时成绩统计软件 最后的Java作业...
1.(windows综合程序)设计一个学生平时成绩统计软件.要求: (1) 录入课程名称(进入系统时录入).学生姓名.学号.成绩.日期(自动生成日期并在界面显示),除第一次外其他次数输入只需要录入学号 ...
- dos下编写java程序_在DOS命令行状态下,如果命令java Hello成功运行了程序,那么下面哪些叙述是正确的()...
[判断题]在JDK命令行开发工具中,用编译程序javac.exe编译生成的文件是二进制可执行文件. [论述题]你认为堂吉诃德是一个怎样的人? [简答题]练习函数 [单选题]下列制度体现商法提高交易效率 ...
- JAVA十大排序算法动画_十大排序算法(java实现)
[前言]最近在重新研究算法,此篇博文供自己复习使用也为方便广大程序员同学!此文代码均为自己实现,通过对比经典解法校验,若有错请读者及时提出! - [对比分析图]首先,我们先来对比分析一下这十大排序算法 ...
- qtp启动java程序_转: QTP六脉神剑之调用Java程序
查看( 1147 ) / 评论( 21 ) 六脉神剑之调用程 序0Xp1zLN_0版权声明:原创作品,转载请以链接方式注明出自http://www.51testing.com/?35,否则将追究法律责 ...
- 怎么一键执行java程序_如何快速、低成本、低扰动地运行一段Java代码
JVM是个运行服务端应用的好VM,但如果你只是想频繁地运行一段Java写的脚本,或者在跑一些辅助性的Java程序比如监控,比如日志收集,这时候的诉求就和平日里的应用不一样了: 1.启动快速,动静小. ...
- mysql连接java程序_实现Java连接mysql
Java连接mysql数据库,代码经过运行准确无误. 下面为实例----> 用数据库操纵工具(例: SQLyogEnt)操纵mysql建表,或dos下建,如下: 数据库名:scutcs 表名:s ...
最新文章
- 使用Selenium爬虫进阶
- 四则运算 - java实现(叶尚文, 张鸿)
- 每日一程-10.五种基本随机数测试-续
- 预算为0如何拉用户?类类教你5个独门绝技,并说说一些陷阱!
- input自适应_【正点原子FPGA连载】第十一章基于OV5640的自适应二值化实验-领航者ZYNQ之HLS 开发指南...
- bzoj 1014 火星人prefix —— splay+hash
- 11.python并发入门(part3 多线程与互斥锁)
- .NETFramework、C#、VisualStudio 这三者之间关系,你了解吗!
- 学习笔记: ES7(ES2016)新功能
- 【是程序猿就干了这碗心灵鸡汤】我们这一代人的困惑
- KVM虚拟化技术原理简介
- 学c语言学生智商要搞么,作为一个学渣,哥来告诉你如果你智商不够该怎么办...
- 不安全的文件上传基本原理(Unsafe file upload)
- 怎么把ogg音频格式转换为mp3
- matlab 实验七,matlab 实验七 数字填图问题
- 双螺杆挤出机有哪些系列
- 在线教育平台的数据分析——用户的地域分布
- android之网络状态判断(wifi和移动网络数据)
- 千元级智能门锁性价比革命,欧瑞博小金刚C1全球首发
- ABP中使用MySql数据库
热门文章
- ubuntu 刚更改默认python3版本后更新包等
- http://blog.sina.com.cn/s/blog_4aae007d0100inxi.html
- POJ 1001 Exponentiation
- Oracle修改机器名后导致监听和console无法启动解决方法参考(转的)
- hdu 1232 畅通工程
- 51 -leetcode 38 -字符串
- mysql 瓶颈诊断_MySQL 监控、性能瓶颈排查
- 如果数组最后一项为空删除最后一项和去前面的逗号_手写数组方法
- 伸缩菜单----html文件
- 微课系列(一):Python列表remove()方法工作原理