排序算法
来源:互联网 发布:笔记本外置光驱 知乎 编辑:程序博客网 时间:2024/06/05 03:43
学C的时候排序的算法只知道是冒泡排序和选择排序,效率为n^2,当数据量比较大的时候,用这种算法排序跑起来付出的代价是很可观的。
当然还有很多高效率的排序方法,如快速排序,堆排序,效率为n*logn。下面就列出快速排序的核心代码:
•void QuickSort(int * arr,int left,int right)
•{
• int i,j,k,mid,temp;
• i = left;
• j = right;
• srand((int)time(0));
• mid = arr[left + rand()%(right - left)];
• do
• {
• while (arr[i]<mid && i<right) ++i;
• while (arr[j]>mid && left<j) --j;
• if (i<=j)
• {
• ++total;temp = arr[i];arr[i] = arr[j];arr[j] = temp;++i;--j;
• }
• }while (i<=j);
• if (i<right) QuickSort(arr,i,right);
• if (left<j) QuickSort(arr,left,j);
•}
其实最快好像是标准库里的sort()函数,只要包头文件#include <algorithm>就能直接调用。
那照这样说冒泡排序和选择排序效率那么低,应该淘汰它啦。不过在很多时候我们还是用这两种方法较多。一个是一般我们设计的程序数据不多,二来通俗易懂代码精简。还有单片机很多都是采取冒泡排序的,毕竟经过这么多年大家还是使用它,肯定是有它的个人之处。
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- Format Date in Custom Drop Down List in Ext.Net
- linux c中select使用技巧
- King 差分约束系统
- sql语句字段值包含字符串问题
- 模板方法模式
- 排序算法
- 我的纯玻璃
- Eclipse PHP插件安装与配置
- 使用WCF Service Web Role
- JDK5 获取线程返回结果
- Android开发遇到的问题笔记(持续更新)
- 计算几何
- 移动互联网数据分析 移动客户端流量统计 移动客户端数据统计(一)
- Communication Planning for Phobos 最小生成树加计算几何