[数据结构] 快速排序C语言程序
2024-09-20 17:11:45
//由大到小
//快速排序(待排序数组,左侧起点,右侧起点)
void quickSort(int *array, int l, int r)
{
if ( l >= r) return;
int i = l,j = r;
int temp;
while (i != j)
{
for ( ;j>i;j--)
{
if (array[j] > array[i])
{
temp = array[j];
array[j] = array[i];
array[i] = temp;
break;
}
}
for ( ; i<j;i++)
{
if (array[j] > array[i])
{
temp = array[j];
array[j] = array[i];
array[i] = temp;
break;
}
}
}
quickSort(array, l, i-);
quickSort(array, j+, r);
}
//成绩排名处理,(同分数同名次,后面的人顺延,99 99 95 60,排名为 1 1 3 4)
// 输入参数:成绩数组;以分数为下标来记录该分数的排名的预存数组
void dealRanks(int * grade, int *ranks)
{
quickSort(grade, , N-);
for (int i = ; i <; i++)
{
ranks[i] = ;
}
int rank=,temp = -;
for (int i = ; i < N ; i++)
{
if (temp != grade[i])
{
ranks[grade[i]] = rank;
temp = grade[i];
}
rank++;
}
}
最新文章
- mysql百万级分页优化
- ios控制器生命周期详解
- SDWebImage清除图片缓存
- 【leetcode】Evaluate Reverse Polish Notation(middle)
- Hadoop开发中,如何开启、关闭控制台打印调试信息
- 【LeetCode OJ】LRU Cache
- easyui反选全选和全不选代码以及方法的使用
- Unity3d 实现顶点动画
- GEF开发eclipse插件,多页编辑器实现delete功能
- SpringMVC创建HelloWorld程序
- IBM developer:Kafka ACLs
- Android 开发 VectorDrawable 矢量图 (二)了解矢量图属性与绘制
- RNN/LSTM/GRU/seq2seq公式推导
- JustOj 2039: 成绩排名 (结构体排序)
- postman 断点
- VS2013的安装与测试
- 〖Linux〗多个JDK版本之间快速切换
- vim在系统剪切板的复制与粘贴
- 用highcharts展现你的数据
- arm linux下启动ftp服务