博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小练习 - 排序:冒泡、选择、快排
阅读量:4205 次
发布时间:2019-05-26

本文共 1683 字,大约阅读时间需要 5 分钟。

好久没手写过排序了,用C重新练习下三种排序方法,快排的边界还是需要注意下。练习这些经典算法要在脑子里能够形象的想象出这些数据结构的表现与操作,这样才能理解深刻。

#include 
// [begin, end) 前闭后开,索引范围是[begin, end - 1]// 冒泡, 稳定排序void bubble_sort(int data[], int begin, int end){ int i, j, tmp; for (i = begin; i < end - 1; i++) { for (j = begin; j < end - 1 - i; j++) { if (data[j] > data[j + 1]) { tmp = data[j]; data[j] = data[j + 1]; data[j + 1] = tmp; } } }}// [begin, end) 前闭后开,索引范围是[begin, end - 1]// 选择排序, 非稳定排序void select_sort(int data[], int begin, int end){ int i, j, tmp; for (i = begin; i < end - 1; i++) { for (j = i; j < end; j++) { if (data[i] > data[j]) { tmp = data[i]; data[i] = data[j]; data[j] = tmp; } } }}// [begin, end) 前闭后开,索引范围是[begin, end - 1]// 快排, 分支递归思想, 非稳定排序void quick_sort(int data[], int begin, int end){ int i = begin, j = end - 1, tmp; if (begin >= end - 1) return; tmp = data[begin]; while (i < j) { while (i < j && data[j] >= tmp) j--; if (i < j) data[i++] = data[j]; while (i < j && data[i] < tmp) i++; if (i < j) data[j--] = data[i]; } data[i] = tmp; quick_sort(data, begin, i); quick_sort(data, i + 1, end);}int main(){ int data[] = {
1, 4, 5, 2, 3, 9, 8, 10, 12, 11, 13, 14, 0, 6, 7, 15}; int len = sizeof(data) / sizeof(data[0]); int i = 0; // bubble_sort(data, 0, len); // select_sort(data, 0, len); quick_sort(data, 0, len); for (i = 0; i < len; i++) printf("%i ", data[i]); printf("\n"); return 0;}

转载地址:http://jfqli.baihongyu.com/

你可能感兴趣的文章
关于mongodb的 数组分组 array group
查看>>
MongoDB新的数据统计框架介绍
查看>>
mongodb fulltextsearch 关于语言的设置选项
查看>>
mongodb 增加全文检索索引
查看>>
symfony
查看>>
yourls 短连接 安装
查看>>
yii2 php namespace 引入第三方非namespace库文件时候,报错:Class not found 的解决
查看>>
softlayer 端口开放
查看>>
操作1:mongodb安装
查看>>
操作2:mongodb使用语法
查看>>
如何给分类增加一个属性(后台)
查看>>
linux设置环境变量 临时设置 和 永久设置
查看>>
mysql数据库主从同步的问题解决方法
查看>>
LoadRunner如何在脚本运行时修改log设置选项?
查看>>
QC数据库表结构
查看>>
自动化测试工具的3个关键部分
查看>>
测试工具厂商的编程语言什么时候“退休”?
查看>>
资源监控工具 - Hyperic HQ
查看>>
LoadRunner中Concurrent与Simultaneous的区别
查看>>
SiteScope - Agentless监控
查看>>