#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. google浏览器如何导出书签

     首先打开浏览器点右侧的自定义及控制Google chrome.  点击书签-书签管理器   打开书签管理器界面中·   点击书签管理器的整理  最下面的将书签导出到html文件..  弹出另存为对话 ...

  2. Basic Calculator 基本计算器

    2018-09-27 22:02:36 一.Basic Calculator II 问题描述: 问题求解: sign用来保存前一个符号,用num来记录数字,如果碰到一个符号或者到达结尾,则需要进行入栈 ...

  3. C语言逗号运算符和逗号表达式基础总结

    逗号运算符的作用: 1,起分隔符的作用: 定义变量用于分隔变量:int a,b输入或输出时用于分隔输出表列 printf("%d%d",a,b) 2,用于逗号表达式的顺序运算符 语 ...

  4. SVN图标各种标注

    黄色感叹号(有冲突):--这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许你提交,防止你的提交覆盖了别人 ...

  5. yum源仓库搭建

    系统:centos7 一.安装nginx yum install -y nginx yum  install -y createrepo   安装建yum源仓库的工具,可以用来建立yum仓库yum  ...

  6. 【Oracle】【4】mybatis insert/update 数据后返回关键字段

    1,插入 insert 场景:ID字段的值是数据库表“默认/表达式”(sys_guid())自动生成,插入一条数据到数据库后,需要获取该条数据的ID 解决方案: (1)Service层生成UUID p ...

  7. 前端VUE框架

    一.什么是VUE?  它是一个构建用户界面的JAVASCRIPt框架  vue不关心你页面上的是什么标签,它操作的是变量或属性 为什么要使用VUE? 在前后端分离的时候,后端只返回json数据,再没有 ...

  8. php并发

    bool flock ( int handle, int operation [, int &wouldblock] );flock() 操作的 handle 必须是一个已经打开的文件指针.o ...

  9. log4j的一些参数说明

    参数 说明 例子 %c 列出logger名字空间的全称,如果加上{<层数>}表示列出从最内层算起的指定层数的名字空间 log4j配置文件参数举例 输出显示媒介 假设当前logger名字空间 ...

  10. 784. Letter Case Permutation C++字母大小写全排列

    网址:https://leetcode.com/problems/letter-case-permutation/ basic backtracking class Solution { public ...