C语言练习实例——排序
题目:对10个数进行排序。
程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后8个进行比较,并进行交换。
#include <stdio.h>typedef void (*p_func)(int *, int);void select_sort(int *arr, int size) //选择排序
{int i = 0, j = 0;for(i = 0; i < size; i++){for(j = i; j < size; j++){if(arr[i] > arr[j] ){arr[i] ^= arr[j];arr[j] ^= arr[i];arr[i] ^= arr[j];}}}
}void bubble_sort(int *arr, int size) //冒泡排序
{int i = 0, j = 0;for(i = 1; i < size; i++){for(j = 0; j < size - i; j++){if(arr[j] > arr[j+1]){arr[j] ^= arr[j+1];arr[j+1] ^= arr[j];arr[j] ^= arr[j+1];} } }
}
void quick_sort(int *arr, int size) //快速排序
{if(size <= 1)return;int base = *arr;int head = 0, tail = size - 1;while(head < tail){if(arr[head] > arr[tail]){arr[head] ^= arr[tail];arr[tail] ^= arr[head];arr[head] ^= arr[tail];}if(arr[head] == base)tail--;else head++;}quick_sort(arr, head - 1);quick_sort(&arr[head + 1], size - head - 1);
}
int main()
{int arr[] = {0, 4, 2, 8, 6, 1, 5, 9, 3, 7};int i = 0, j = 0;p_func p_sort[] = {select_sort, bubble_sort, quick_sort};for(i = 0; i <= 2; i++){p_sort[i](arr, sizeof(arr)/sizeof(int));i == 0 ? printf("select : ") : i == 1 ? printf("bubble : ") : printf("quick : ");for(j = 0; j < sizeof(arr)/sizeof(int); j++)printf("%d ", arr[j]);printf("\n");}return 0;
}
C语言练习实例——排序相关推荐
- 二叉排序树查找的c语言程序,C语言二叉排序(搜索)树实例
本文实例为大家分享了C语言二叉排序(搜索)树实例代码,供大家参考,具体内容如下 /**1.实现了递归 非递归插入(创建)二叉排序(搜索)树: 分别对应Insert_BinSNode(TBinSNode ...
- c语言220程序,《C语言程序实例大全》原代码220例
<C语言程序实例大全>,一共220个. 找了很多地方都不全,最后在CSDN上用积分下载了这个,C语言初学者可以参考. 下载地址: http://doc.xuehai.net/tp09770 ...
- mysql中dml操作_MySQL的DML语言操作实例
补充说明,外键:不要使用外键,一切外键概念都在应用层解决. 补充说明,数据库的列,也就是字段名,尽量带上飘符号` 数据库存在的意义:数据存储和数据管理. 数据库:行(数据),列(字段) 注意:本页是解 ...
- 回文日期 php,c语言程序实例大全,220个详细程序源代码
c语言 程序设计 实例 大全 目录: 第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 ...
- 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态
介绍 这个是在B站上看边看视频边做的笔记,这一章是Glang面向对象编程 这一章内容较多,内容有Go语言的结构体是什么,怎么声明:Golang方法的调用和声明:go语言面向对象实例,go语言工厂模式: ...
- qt 飞扬青云_R语言学习——实例标识符
> patientID > age > diabetes > status > patientdata > #在上述创建的病例数据框中,病人编号(patientID ...
- C语言程序实例100个
[程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去掉不满足条件的排列. ...
- c语言程序设计移动字母,C语言程序设计实例大全(220个例子)
C语言程序设计实例大全,C语言是世界上最流行.使用最广泛的高级程序设计语言之一,这里c语言 程序设计 实例 大全有220个例子供大家参考 c语言开发实例目录: 第一部分 基础篇 001 第一个C程序 ...
- c语言程序设计培训课件打包,C语言程序设计实例PPT培训课件.ppt
C语言程序设计实例PPT培训课件 第 14章 C语言程序设计实例 ;实例一 成绩处理程序 ; 2. 数据说明 (1) 学生人数假定不超过1000人, 课程门数假定不超过30门,分别用符号常量N.M描 ...
最新文章
- 多组两两比较用什么检验方法_用SPSS进行不同变量多组间两两比较卡方检验.pdf...
- We Chall-Prime Factory-Writeup
- 常用汉字的unicode 编码
- 机器性能这么好,为什么点击右键弹出菜单还这么慢?
- jvm性能调优实战 - 39一次大促导致的内存泄漏和Full GC优化
- WinAPI: GetUserName - 获取当前用户名
- mysql8坑太多_mysql8安装遇到的坑
- 关于nodejs中npm命令没有反应的解决方法
- 循环序列模型 —— 1.8 带有神经网络的梯度消失
- 演进:如何用练习快速提升技术
- [模板] dp套dp bzoj5336: [TJOI2018]party
- 可汗学院公开课——统计学学习:35-46
- c语言测试你的性格,著名人格测试:五张图看出你的性格
- 树莓派linux控制录音,树莓派通过USB声卡录音和播放
- 第九章 姜小白大难不死登君位 公子纠迟来一步梦成空
- 笔刷分享|每个建模人都在用的笔刷合集
- 广式粤语VS港式粤语
- mybatis中type-aliases-package的用法
- Mozilla XUL分析
- 完整优雅的卸载腾讯云云服务器安全监控组件
热门文章
- 如何将扫描的pdf图片转换成文字,方法竟然如此简单?
- React Umi 中实现缓存路由 KeepAlive
- Android 1.5到10.0 都有哪些新特性?
- js封装获取节点class类名方法
- html页面显示闪退,ps2020闪退怎么解决?
- java timestamp 转date_如何在Java中将TimeStamp转换为Date?
- 【棵岩阅读】专为科研打造的阅读和知识发现工具
- 2022年5月27日记:Linux服务器开发,Darren老师,火焰图的生成原理与构建方式
- 前端怎么加粗字体_视频加文字怎么弄?强烈建议你花几分钟学一下
- 天逸F41 完美安装MAC系统