用数据结构c语言写成绩排序,C语言数据结构 快速排序实例详解
C语言数据结构 快速排序实例详解
一、快速排序简介
快速排序采用分治的思想,第一趟先将一串数字分为两部分,第一部分的数值都比第二部分要小,然后按照这种方法,依次对两边的数据进行排序。
二、代码实现
#include
/* 将两个数据交换 */
void swap(int* Ina , int* Inb)
{
int temp = *Ina;
*Ina = *Inb;
*Inb = temp;
}
/* 进行一趟的快速排序,把一个序列分为两个部分 */
int getPartion(int* InArry,int InBegin,int InEnd)
{
/* 刚开始的分隔线是第一个 */
int part = InBegin;
int index = 0;
if(InEnd >= InBegin)
{
part = InBegin;
for(index = InBegin+1; index <= InEnd; index++)
{
if(InArry[InBegin] >= InArry[index])
{
/* 交换位置 */
swap(&InArry[part+1],&InArry[index]);
part++;
}
}
/* 把第一个数放到part处去 */
swap(&InArry[InBegin],&InArry[part]);
return part;
}
}
/* 快速排序函数
* InArry:输入的数组
* InBegin:数组的开始
* InEnd:数组的结束
*/
void quickSort(int* InArry,int InBegin,int InEnd)
{
if(InArry == NULL || InEnd <= InBegin)
{
return;
}
int part = 0;
part = getPartion(InArry,InBegin,InEnd);
/* 递归调用 */
quickSort(InArry,0,part-1);
quickSort(InArry,part+1,InEnd);
}
int main()
{
int a[] = {49,38,65,97,76,13,27};
int index = 0;
int len = sizeof(a)/sizeof(int);
/* 先遍历打印一下数组的元素 */
for(index = 0; index < len; index++)
{
printf("%d ",a[index]);
}
printf("\n");
/* 调用快速排序函数 */
quickSort(a,0,len-1);
/* 再遍历打印一下数组的元素 */
for(index = 0; index < len; index++)
{
printf("%d ",a[index]);
}
printf("\n");
return 0;
}
以上就是使用C语言数据结构 快速排序的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站 的支持!
用数据结构c语言写成绩排序,C语言数据结构 快速排序实例详解相关推荐
- java语言写购物车_JavaWeb后台购物车类实现代码详解
相信大家肯定都在电商网站买过东西,当我们看中一件喜欢又想买的东西时,这时候你又不想这么快结账,这时候你就可以放入购物车: 就像我们平时去超市买东西一样,会推着购物车去买东西: 那么我们接下来看看jav ...
- python画直方图成绩分析-python plotly绘制直方图实例详解
计算数值出现的次数 import cufflinks as cf cf.go_offline() import numpy as np import pandas as pd set_slippage ...
- android的时间代码怎么写,Android 日期和时间的使用实例详解
Android 日期和时间的使用 日期和时间的使用: 1:弹出框TimePickerDialog,DatePickerDialog 2:组件TimePicker,DatePicker TimePick ...
- c语言pair的用法,C++ pair的用法实例详解
C++ pair的用法实例详解 1 pair的应用 pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存.另一个应用是,当 ...
- 用C语言学生成绩数据库排序功能设计,[c语言学生成绩管理系统]C语言学生成绩管理系统实验报告...
篇一 : C语言学生成绩管理系统实验报告 实 验 四:结构体(6学时) 实验目的: 1.更加灵活的使用数组作为函数参数: 2.初步掌握开发一个小型实用系统的基本方法: 3.初步掌握书写程序设计开发文档 ...
- c语言编译器_学C语言写自己的K语言:编译器词法分析。
词法分析(lexical analysis),是计算机科学中将字符序列转换为记录(Token)序列化的过程.词法分析一般分手动与自动,自动是基于lex,flex词法分析器使用正则式来配置,我们这里将学 ...
- c语言编程 输入螺旋数组,C语言 经典题目螺旋矩阵 实例详解
C语言 经典题目螺旋矩阵 实例详解 C语言 经典题目螺旋矩阵 //N阶螺旋矩阵 #include #include int main() { int N,i,j,n,num=1; int a[10][ ...
- c语言二级指针有什么作用,C语言中二级指针的实例详解
C语言中二级指针的实例详解 C语言中二级指针的实例详解 用图说明 示例代码: #include int main(int argc, const char * argv[]) { // int a = ...
- C语言字符集中可显示字符,C++_C语言转义字符实例详解,在字符集中,有一类字符具有 - phpStudy...
C语言转义字符实例详解 在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么.这类字符称为可显示字符,如a.b.c.$.+和空格符等都是可显 ...
最新文章
- synchronize
- 公司A、公司B、公司C……
- log4j按天生成且有按照文件大小分割_论文阅读TGM:轨迹生成
- 软件项目风险评估报告00
- ipa在线安装搭建_三种越狱工具安装方法
- Hibernate学习笔记!
- Overfeat图片分类、定位、检测
- access建立er图_ER图的构建
- 超详细中文车牌识别开源库EasyPR入门实战(win10_VS2019_opencv34)
- DNN硬件加速器设计3 -- DNN Accelerators(MIT)
- 属性子集选择的基本启发方法_【数据挖掘笔记三】数据预处理
- GitHub Top 45:新手入门 Python,值得推荐的优质资源!
- 电脑公司GHOST WIN7 SP1 2011装机旗舰版
- 专业Java报表工具Stimulsoft Reports.Java常见问题解答
- Kafka学习——基于已有zookeeper集群实现kafka的集成
- android vitamio集成教程,集成Vitamio实现万能播放器(示例代码)
- 云计算厂商决战2020:虽分高下,但不决生死
- 智慧园区物业可视化大屏
- Mysql GEOHASH function 实现
- 分享几个好用到爆的 Python 内置模块
热门文章
- python合并路径和文件名_Python实例 分割路径和文件名
- 中有atoi函数吗_C++ 多态的实现及原理,深挖vptr指针,手动调用虚函数
- 基于abtest思想的流量切换(nginx lua redis)
- python怎么写入到文件中_Python学习笔记之将数据写入到文件中
- guid java_JAVA实现生成GUID的方法
- 列举python中可变数据类型_python 可变数据类型 和 不可变数据类型
- mysql 5.6.14 win32_mysql-5.6.14-win32为免安装解压缩版
- php连接mysql的方式_php有几种连接mysql的方法
- java编程思想泛型对混入的详细探讨
- python自动测试v_python下selenium自动化测试自我实践