
算法
爱吃甜食_
一点点进步,让编程更有趣
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
排序算法分析
排序算法的分析 排序算法的稳定性 如果在对象序列中有两个对象r[i] 和r[j] ,它们的排序码k[i]==k[j] 。如果排序前后,对象r[i] 和r[j] 的相对位置不变,则称排序算法是稳定的;否则排序算法是不稳定的。 排序算法的评价 时间开销 排序的时间开销可用算法执行中的数据比较次数与数据移动次数来衡量。算法运行时间代价的大略估算一般都按平均情况进行估算。对转载 2017-03-08 01:17:55 · 238 阅读 · 0 评论 -
排序算法性能和使用场景总结
转自:http://www.cnblogs.com/end/archive/2011/10/22/2220995.html 按平均时间将排序分为四类: (1)平方阶(O(n2))排序 一般称为简单排序,例如直接插入、直接选择和冒泡排序; (2)线性对数阶(O(nlgn))排序 如快速、堆和归并排序; (3)O(n1+£)阶排序 £是介于0转载 2017-03-20 00:29:04 · 302 阅读 · 0 评论 -
快速排序
void quickSort(int arr[], int low, int high) { if (low { int left = low; int right = high; int x = arr[low]; while (low //完成一次排序、j和i指向同一位置 { while (low x) // 从右向左找第一个小于x的数 { high--;原创 2017-03-20 01:22:05 · 257 阅读 · 0 评论 -
冒泡排序
冒泡排序原理为,重复的遍历数列,当后面的数小于(大于)前面的数,则交换两个数,直到没有要交换的数据为止。对于n个数的数列,时间复杂度为o(n^2)。 优化的冒泡排序原理为,设置标志位。通过判断标志位,判断一次遍历数列后,是否有数列进行交换。如果一次遍历数列后,并没有数据进行交换,则证明数列是有序的。对于n个数的数列,时间复杂度为o(n^2)。 优化的冒泡排序算法如下: emplate vo原创 2017-03-06 21:19:34 · 223 阅读 · 0 评论 -
简单选择排序
假设所排序序列的记录个数为n,i 取 1,2,…,n-1。 从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小(或最大)的记录,与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。 时间复杂度为o(n^2),移动操作的时间复杂度为o(n)。 代码如下: template void Swap(T &t1, T &t2) { T temp; temp = t1;原创 2017-03-06 23:36:38 · 241 阅读 · 1 评论