冒泡排序规则:1.比较相邻的两个数据项,若左边的较大,则交换位置。2.比较一趟之后最大的数据项排在了最后。3.比较n-1(n为数据项的个数)趟后,待排序的数据拍好了序。因为比较数据项相等时不交换位置,所以冒泡排序是稳定排序。importjava.util.Arrays;publicclassBubb...
分类:
其他好文 时间:
2014-09-09 12:16:48
阅读次数:
241
这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳....
分类:
其他好文 时间:
2014-08-30 20:21:19
阅读次数:
231
最近忙着复习找工作,熟悉了下排序算法,动手写了一下,发现有些问题的边界条件还是没有考虑清楚,不过好在调试成功。不稳定排序:堆排序,快速排序,希尔排序;稳定排序:插入排序,冒泡排序,选择排序,归并排序,基数排序等。插入排序算法代码:void InsertSort(int A[],int n){ ...
分类:
其他好文 时间:
2014-08-28 19:39:25
阅读次数:
287
2014-08-22题目意思:按照各个字符串的逆序数排序(稳定排序,即若A=B,则AB的顺序还是原来的样子)思路:求出每个字符串的逆序数后,排序输出即可代码://Memory Time // 352K 16MS #include #include typedef struct Dna{ in...
分类:
其他好文 时间:
2014-08-22 19:33:19
阅读次数:
184
希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。
希尔排序是基于插入排序的以下两点性质而提出改进方法的:
插入排序在对几乎已经排好序的数据操作时, 效率高, 即可以达到线性排序的效率但插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位...
分类:
编程语言 时间:
2014-08-19 14:34:44
阅读次数:
303
来源:http://acm.hdu.edu.cn/showproblem.php?pid=1872
归类: 图论、二叉搜索树
稳定排序
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3779 Accepted Su...
分类:
其他好文 时间:
2014-08-14 14:16:18
阅读次数:
247
快速排序的原理:首先找一个标兵值,等于某一个元素值;遍历数组,将数组分为小于标兵值和大于标兵值的两部分;然后分别对两个部分采用快速排序,递归。分开数组时,维持一个指针,指向已找到小部分的最后一个元素;一个指针用于遍历。不稳定排序算法。当数组已经有序时,时间复杂度最差,为O(N2),平均、最优情况下都...
分类:
其他好文 时间:
2014-08-12 00:36:13
阅读次数:
146
归并排序的原理:如果数组的元素个数大于1,则: 将数组平均分为两部分; 左边的数组归并排序;递归 右边的数组归并排序;递归 将两个各自有序的数组合并,需要一个额外的辅助数组,暂时保存合并结果;返回否则,数组元素个数为1时,已经有序;直接返回。稳定排序。时间复杂度在最坏、最好、平均情况下都为O...
分类:
其他好文 时间:
2014-08-12 00:27:53
阅读次数:
223
1. 所有STL sort算法函数的名字列表:
函数名 功能描述
sort 对给定区间所有元素进行排序
stable_sort 对给定区间所有元素进行稳定排序
partial_sort 对给定区间所有元素部分排序
partial_sort_copy 对给定区间复制并排序
nth_element ...
分类:
其他好文 时间:
2014-08-07 18:59:20
阅读次数:
231
排序(sort):所有sort算法介绍:使用的迭代器(iterator)都需是随机迭代器(RadomAccessIterator)1. 所有函数名功能描述sort对给定区间所有元素进行排序stable_sort对给定区间所有元素进行稳定排序partial_sort对给定区间所有元素部分排序parti...
分类:
其他好文 时间:
2014-08-01 13:30:31
阅读次数:
303