排序1.js的sort方法,按数值大小排序var arr=[2,4,1,4];arr.sort(function(a,b){return at){A[j+1]=A[j];j--;}A[j+1]=t;}}②.希尔排序(不稳定):希尔(Shell)排序的基本思想是:先取一个小于n的整数d1作为第一个增量...
分类:
编程语言 时间:
2015-08-25 23:19:35
阅读次数:
203
c语言基础算法大全
冒泡排序
选着排序
插入排序
快速排序
shell排序.
合并排序.
下面是各个排序算法的实现:
冒泡排序
void bobuleSort(int a[], int len)
{
int i,j,flag =1;
for(i = 0; ii; j--)
{...
分类:
编程语言 时间:
2015-07-30 00:43:56
阅读次数:
167
[基本的想法]将原本有大量记录数的记录进行分组。切割成若干个子序列,此时每一个子序列待排序的记录个数就比較少了,然后在这些子序列内分别进行直接插入排序,当整个序列都基本有序时。再对全体记录进行一次直接插入排序。所谓的基本有序,就是小的keyword基本在前面,大的基本在后面,不大不小的基本在中间。像...
分类:
编程语言 时间:
2015-07-29 11:36:55
阅读次数:
107
一、直接插入排序稳定,时间复杂度:最好O(n)、最差O(n^2)、平均O(n^2)。空间复杂度O(1)void InsertSort(int L[], int n){ int i, j,key; for (i = 1; i= 0 && key =high+1;j--)//后移 //j >= low ...
分类:
编程语言 时间:
2015-07-22 22:06:11
阅读次数:
116
山是包插入的精髓排序排序。这种方法,也被称为窄增量排序,因为DL.Shell至1959提出命名。该方法的基本思想是:先将整个待排元素序列切割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一...
分类:
编程语言 时间:
2015-06-22 22:12:32
阅读次数:
199
一、希尔排序(Shell Sort)
希尔排序(Shell Sort)是一种插入排序算法,因D.L.Shell于1959年提出而得名。Shell排序又称作缩小增量排序。
二、希尔排序的基本思想
希尔排序的中心思想就是:将数据进行分组,然后对每一组数据进行排序,在每一组数据都有序之后
,就可以对所有的分组利用插入排序进行最后一次排序。这样可以显著减少交换的次数,以达到加快排序速度的...
分类:
编程语言 时间:
2015-06-19 01:31:56
阅读次数:
232
算法分析:
希尔排序是一种按照增量排序的方法。其中增量值是小于n的正整数。
shell排序的基本思想[1]是:
先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2
可以根据下图形象理解:
(1)初始增量为3,该数组分为...
分类:
编程语言 时间:
2015-06-04 10:00:45
阅读次数:
193
这一系列博客的特点就是——给出每趟排序的结果
本来想着好好写一下过程,弄个图片什么的,不过觉得网上的解析太多了,都比较好,所以这些博客就算是对自己的总结吧。
#include
void ShellSort(int *m, int n)
{
int i,flag,gap;
for(gap=n;gap!=1;)
{
gap/=2;
do
{
...
分类:
编程语言 时间:
2015-05-26 12:42:12
阅读次数:
146
我们先假设排序工作是在内存中完成的,也就是说数据量小于几百万,这称为内部排序。最后再考虑大量数据时的排序,也就是外部排序。对内部排序的研究将得出结论:存在几种容易 的算法 以O(N2)完成排序,如插入排序。shell排序很简单,以o(N2)(这里是小o)完成排序,在实践中很有效果。有一些复杂的以O(...
分类:
编程语言 时间:
2015-05-24 14:06:30
阅读次数:
132
awk和sort 实现将前面的N-1个字段作为Key,最后一个字段做Value,并根据Value排序...
分类:
编程语言 时间:
2015-05-16 21:51:34
阅读次数:
255