#include <stdio.h>
#include <string.h>
#define N 6
typedef struct
{
char name[];
int score;
}student;
//选择排序
void sort1 (student a[])
{
int i,j,min;
student st;
for(i=;i<N-;i++)
{
min=i;
for(j=i+;j<N;j++)
{
if(a[min].score>a[j].score)
min=j;
}
if(min!=i)
{
st=a[min];
a[min]=a[i];
a[i]=st;
}
}
}
//插入排序
void sort2 (student a[])
{
int i,j;
student st;
for(i=;i<N;i++)
{
st=a[i]; for(j=i;j>&&a[j-].score>st.score;j--)
a[j]=a[j-];
a[j]=st;
}
}
//冒泡排序
void sort3 (student a[])
{
int i,j;
student st;
for(i=;i<N-;i++)
{
for(j=;j<N-i-;j++)
{
if(a[j].score>a[j+].score)
{
st=a[j];
a[j]=a[j+];
a[j+]=st;
}
}
}
}
//快速排序
void sort4 (student a[],int left,int right)
{
int l=left,r=right;
student temp;
if(l<r)
{
temp=a[l];
while(l!=r)
{
while(r>l&&a[r].score>temp.score) --r;
if(l<r)
{
a[l]=a[r];
++l;
}
while(l<r&&a[l].score<temp.score) ++l;
if(l<r)
{
a[r]=a[l];
--r;
}
}
a[l]=temp;
sort4(a,left,l-);
sort4(a,l+,right);
}
}
void print(student s[])
{
int i;
for(i=;i<N;i++)
{
printf("%s %d \n",s[i].name,s[i].score);
}
printf("\n");
}
int main()
{
int key;
student s[N]={{"x",},{"y",},{"z",},{"w",},{"c",},{"h",}};
printf("1~4继续选择:\n1、比较排序\n2、插入排序\n3、冒泡排序\n4、快速排序\n按其他键退出\n");
while(scanf("%d",&key)!=)
{
switch(key)
{
case :
//比较排序
printf("比较排序结果:\n");
sort1(s);
print(s);
break;
case :
//插入排序
printf("插入排序结果:\n");
sort2(s);
print(s);
break;
case :
//冒泡排序
printf("冒泡排序结果:\n");
sort3(s);
print(s);
break;
case :
//快速排序
printf("快速排序结果:\n");
sort4(s,,N-);
print(s);
break;
default :
return ;
break;
}
}
return ;
}

准备下上机考试,各种排序!!以后再添加和仿真像wiki上那样!的更多相关文章

  1. Gridview排序与分页-不使用“DataSourceControl DataSource”的情况下如何分页和排序 ...

    如果你在GridView控件上设置 AllowPaging="true" or AllowSorting="true" 而没有使用使用数据源控件 DataSou ...

  2. 发现护考上机考试的一个bug:附软件截图(模拟软件)

    目录: 一.文章主旨 二.问题发现的起因 三.bug(问题)描述 四.软件截图 五.我的思考 六.一点期盼 一.文章主旨: 2019年5月18.19.20日,又是一年一度的护资考试(上机考),考试前夕 ...

  3. Twin Prime Conjecture(浙大计算机研究生保研复试上机考试-2011年)

    Twin Prime Conjecture                                            Time Limit: 2000/1000 MS (Java/Othe ...

  4. Java基础知识强化之IO流笔记52:IO流练习之 把一个文件中的字符串排序后再写入另一个文件案例

    1. 把一个文件中的字符串排序后再写入另一个文件 已知s.txt文件中有这样的一个字符串:"hcexfgijkamdnoqrzstuvwybpl" 请编写程序读取数据内容,把数据排 ...

  5. python3.4下遍历文件目录,不需要再特殊处理中文编码

    python3.4下遍历文件目录,不需要再特殊处理中文编码 直接使用os.walk来遍历中文目录. os.walk方法返回的是一个三元 tupple(dirpath, dirnames, filena ...

  6. 《剑指Offer》第1题(Java实现):在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

    一.题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该 ...

  7. 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到JVM的实时运行状态?

    https://alibaba.github.io/arthas/ Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱. 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决 ...

  8. HDU 1234 (浙大计算机研究生复试上机考试-2005年) 开门人和关门人 (水)

    开门人和关门人 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  9. C#中怎样在ToolStripMenuItem下再添加子级菜单

    场景 在右键菜单ContextMenuStrip下添加子菜单选项可以通过 ContextMenuStrip menuStrip ToolStripMenuItem mnuChartOption = n ...

随机推荐

  1. 网络cmd命令

    1.ping ip; 检测IP地址是否相通 ping命令的常用参数选项 ping IP -t:连续对IP地址执行ping命令,直到被用户以Ctrl+C中断. ping IP -l 2000:指定pin ...

  2. English Voice of <<Just Give Me A Reason>>

    Right from the start, you were a thief,打从一开始,你就是个偷心贼You stole my heart and你偷走了我的心I your willing vict ...

  3. WCF初见之SQL数据库的增删改查

    1.首先要连接数据库,自然要有数据库啦,创建一个数据库表Login,并插入一个数据: --创建数据库表login CREATE TABLE Login ( UName VARCHAR(20) PRIM ...

  4. 通过ambari安装hadoop集群,ZT

    通过ambari安装hadoop集群,ZT http://www.cnblogs.com/cenyuhai/p/3295635.html http://www.cnblogs.com/cenyuhai ...

  5. Music in Car CodeForces - 746F (贪心,模拟)

    大意: n首歌, 第$i$首歌时间$t_i$, 播放完获得贡献$a_i$, 最多播放k分钟, 可以任选一首歌开始按顺序播放, 最多选w首歌半曲播放(花费时间上取整), 求贡献最大值. 挺简单的一个题, ...

  6. DP 传球问题

    洛谷P1057 传球问题 分析:经过m次传球到第i个人的方法可以由经过m-1次传球到第i个人和到第i-1个人传递得来 设dp[i][j]为经过j次传球后到达第i个人的方法数,可得到状态转移方程为: d ...

  7. MySQL使用的常见问题

    (一)是否启动了服务器 如果没有启动报错:ERROR 2003 (HY000): Can't connect to MySQL server on ‘localhost' (10061) 解决方法:启 ...

  8. Failed to stop iptables.service: Unit iptables.service not loaded.解决方法

    CentOS7中执行 service iptables start/stop 会报错Failed to start iptables.service: Unit iptables.service fa ...

  9. Mac 安装md5sum等

    一.安装md5sum 方案1.使用brew 安装 方案2.使用源码编译安装 源码下载地址:http://www.microbrew.org/tools/md5sha1sum/md5sha1sum-0. ...

  10. Utils--字符串的帮助类

    Utils--字符串的帮助类 一个关于字符串过滤的工具类,主要时针对username和password的过滤 package com.bw.yun.utils; import java.securit ...