题目:对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语言练习实例——排序相关推荐

  1. 二叉排序树查找的c语言程序,C语言二叉排序(搜索)树实例

    本文实例为大家分享了C语言二叉排序(搜索)树实例代码,供大家参考,具体内容如下 /**1.实现了递归 非递归插入(创建)二叉排序(搜索)树: 分别对应Insert_BinSNode(TBinSNode ...

  2. c语言220程序,《C语言程序实例大全》原代码220例

    <C语言程序实例大全>,一共220个. 找了很多地方都不全,最后在CSDN上用积分下载了这个,C语言初学者可以参考. 下载地址: http://doc.xuehai.net/tp09770 ...

  3. mysql中dml操作_MySQL的DML语言操作实例

    补充说明,外键:不要使用外键,一切外键概念都在应用层解决. 补充说明,数据库的列,也就是字段名,尽量带上飘符号` 数据库存在的意义:数据存储和数据管理. 数据库:行(数据),列(字段) 注意:本页是解 ...

  4. 回文日期 php,c语言程序实例大全,220个详细程序源代码

    c语言 程序设计 实例 大全 目录: 第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 ...

  5. 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态

    介绍 这个是在B站上看边看视频边做的笔记,这一章是Glang面向对象编程 这一章内容较多,内容有Go语言的结构体是什么,怎么声明:Golang方法的调用和声明:go语言面向对象实例,go语言工厂模式: ...

  6. qt 飞扬青云_R语言学习——实例标识符

    > patientID > age > diabetes > status > patientdata > #在上述创建的病例数据框中,病人编号(patientID ...

  7. C语言程序实例100个

    [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去掉不满足条件的排列.  ...

  8. c语言程序设计移动字母,C语言程序设计实例大全(220个例子)

    C语言程序设计实例大全,C语言是世界上最流行.使用最广泛的高级程序设计语言之一,这里c语言 程序设计 实例 大全有220个例子供大家参考 c语言开发实例目录: 第一部分 基础篇 001 第一个C程序 ...

  9. c语言程序设计培训课件打包,C语言程序设计实例PPT培训课件.ppt

    C语言程序设计实例PPT培训课件 第 14章 C语言程序设计实例 ;实例一 成绩处理程序 ; 2. 数据说明 (1) 学生人数假定不超过1000人, 课程门数假定不超过30门,分别用符号常量N.M描 ...

最新文章

  1. 多组两两比较用什么检验方法_用SPSS进行不同变量多组间两两比较卡方检验.pdf...
  2. We Chall-Prime Factory-Writeup
  3. 常用汉字的unicode 编码
  4. 机器性能这么好,为什么点击右键弹出菜单还这么慢?
  5. jvm性能调优实战 - 39一次大促导致的内存泄漏和Full GC优化
  6. WinAPI: GetUserName - 获取当前用户名
  7. mysql8坑太多_mysql8安装遇到的坑
  8. 关于nodejs中npm命令没有反应的解决方法
  9. 循环序列模型 —— 1.8 带有神经网络的梯度消失
  10. 演进:如何用练习快速提升技术
  11. [模板] dp套dp bzoj5336: [TJOI2018]party
  12. 可汗学院公开课——统计学学习:35-46
  13. c语言测试你的性格,著名人格测试:五张图看出你的性格
  14. 树莓派linux控制录音,树莓派通过USB声卡录音和播放
  15. 第九章 姜小白大难不死登君位 公子纠迟来一步梦成空
  16. 笔刷分享|每个建模人都在用的笔刷合集
  17. 广式粤语VS港式粤语
  18. mybatis中type-aliases-package的用法
  19. Mozilla XUL分析
  20. 完整优雅的卸载腾讯云云服务器安全监控组件

热门文章

  1. 如何将扫描的pdf图片转换成文字,方法竟然如此简单?
  2. React Umi 中实现缓存路由 KeepAlive
  3. Android 1.5到10.0 都有哪些新特性?
  4. js封装获取节点class类名方法
  5. html页面显示闪退,ps2020闪退怎么解决?
  6. java timestamp 转date_如何在Java中将TimeStamp转换为Date?
  7. 【棵岩阅读】专为科研打造的阅读和知识发现工具
  8. 2022年5月27日记:Linux服务器开发,Darren老师,火焰图的生成原理与构建方式
  9. 前端怎么加粗字体_视频加文字怎么弄?强烈建议你花几分钟学一下
  10. 天逸F41 完美安装MAC系统