排序算法总结
2016-07-13 11:27
295 查看
1、冒泡排序
View Code
//快速排序 int median3(int A[], int left, int right) { //取主元:取首个,中间,最后元素的中位数 int mid = (left + right) / 2; if (A[left] > A[mid])swap(&A[left], &A[mid]); if (A[left] > A[right-1])swap(&A[left], &A[right-1]); if (A[mid] > A[right-1])swap(&A[mid], &A[right-1]); //同时将主元藏在倒数第二个位置上,只需考虑个[left+1,right-3]; swap(&A[mid], &A[right - 2]); return A[right - 2]; } void quick_sort(int A[], int left, int right) { int pivot = median3(A, left, right); int i = left, j = right - 2; for (;;) { while (A[++i] < pivot); while (A[--j] > pivot); if (i < j)swap(&A[i], &A[j]); else break; } swap(&A[i], &A[right - 2]);//将pivot交换至正确位置 quick_sort(A, left, i - 1); quick_sort(A, i + 1, right); } void quickSort(int A[], int n) { quick_sort(A, 0, n); }
View Code
相关文章推荐
- .Net 分布式云平台基础服务建设说明概要
- ubuntu 14.04 NFS环境搭建
- hdu 1021
- ObjectInputStream NullPointerExcetion
- Android中的基础-----如何使用JAVA动态的添加并设置组件属性
- Android 中 activity 窗口模式的实现
- CCCC初赛 关于堆的判断
- Android5.1中surface和CpuConsumer下生产者和消费者间的处理框架简述
- (git入门 git常用命令)自己在公司的Git总结,以及找到的图,和入门须知的git命令
- java的一些基本问题
- 闺蜜要我甩个详细的自我介绍及对男票的要求,说有惊喜等着我,然后我发了这个之后她就再也没搭理过我。。。
- 优雅的解决指定表空间和索引表空间
- Codeforces 437E The Child and Polygon
- 开启Android程序时检测网络与GPS是否打开
- 使用MyBatis_Generator生成Dto、Dao、Mapping
- 使用EF框架的增删改查和分页的公共类
- android布局--Android fill_parent、wrap_content和match_parent的区别
- Listview:性能优化,三级缓存,二次采样
- Ubuntu 14.04 LTS 软件安装及卸载
- 解决ThinkPHP Call to a member function assign() on a non-object