希尔排序实际上是插入排序的一种,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。时间复杂度无法准确的估计,希尔排序的基本逻辑记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。-(...
分类:
编程语言 时间:
2015-06-18 08:14:35
阅读次数:
104
稳定排序Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4042Accepted Submission(s): 1581Problem Descri...
分类:
编程语言 时间:
2015-05-22 13:14:37
阅读次数:
151
希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位基本思想:希尔排序把...
分类:
编程语言 时间:
2015-05-12 18:31:10
阅读次数:
126
希尔排序法(缩小增量法) 属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序的方法。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率...
分类:
编程语言 时间:
2015-05-11 19:35:08
阅读次数:
154
多种排序算法的总结(不包括复杂度的详细推算)
稳定排序与不稳定排序
稳定排序:相同元素在排序中的相对位置不改变。
不稳定排序:相同元素在排序中的相对位置改变。
内部排序与外部排序:
内部排序:待排的记录与内容都放在计算机的随机存储器中进行的排序过程
外部排序:一般指待排序记录的数量很大,以致内存中一次不能完全容纳全部的记录,在排序过程中,需要对外存进行访问的排序过程。
排...
分类:
编程语言 时间:
2015-05-11 08:52:38
阅读次数:
156
class sort_algorithm
{
public:
int array[MAXN];
int n;
public:
sort_algorithm() { }
~sort_algorithm() { }
/*插入排序 复杂度O(n^2) 稳定排序*/
void Insertion_sort()
{
for (int i = 2; i <= n; i++)
{
i...
分类:
编程语言 时间:
2015-05-10 09:49:53
阅读次数:
141
排序算法可以分为稳定排序和不稳定排序。在简单形式化一下,如果A[i] = A[j],A[i]原来在位置前,排序后A[i]还是要在A[j]位置前,这才能叫稳定排序。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就是这样,先按低位排序,逐次按高位排序,低位相同的元素其顺序再高位也相同时是不会改变的。另外,如果排序算法稳定,对基于比较...
分类:
编程语言 时间:
2015-05-06 10:59:54
阅读次数:
103
不知道博客园有没有计算机专业的考研党,希望列举的计算机考研考点能帮助大家吧,以下就是数据结构常用算法精析,如果大家看有什么不对的地方,欢迎纠错指正啊哈哈哈。2016考研加油!!!!!!!!!内部排序(在内存中进行的排序不需要访问外存的)外部排序(排序量很大,通过分批的读写外存,最终完成排序)稳定排序...
分类:
编程语言 时间:
2015-04-29 16:52:44
阅读次数:
144
思想:
1.首先生成1到n的数组A
2.生成1到n^3的n个数的随机数组P
例如A= P=
3.对p数组进行从小到大的排序(利用快速排序),生成数组P1=
4.根据3中P1的顺序,生成随机数数组A1=
代码:
#include
#include
#include
//快速排序,平均时间复杂度o(nlog2n),最好为o(log2n),最坏为o(n2).是不稳定排序( 交换排序)...
分类:
编程语言 时间:
2015-04-28 18:37:43
阅读次数:
183
简单的自定义排序
#include
#include
#define maxn 300+5
using namespace std;
struct stu
{
string name;
int score;
int lev;
};
bool cmp(stu x,stu y)
{
if(x.score==y.score) return x.lev<y.lev;
return x.scor...
分类:
编程语言 时间:
2015-04-26 09:27:51
阅读次数:
153