算法思想(从小到大排序)
将待排序数组看左右两个序列,左序列有序,有序列无序。假设第一个数array[0]为有序列,那么array[1,N-1]为无序列.循环遍历无序列,找出array[i]在有序列中应该插入的位置,插入。例如一个乱序数组为{1,3,2,4 , 假如有序列为 { 1,3 } 无序列循环到2时 ,那么2在有序列中的位置应该是1 - 3 中间 , 所以 [ 3. . .2 )...
分类:
其他好文 时间:
2014-09-16 18:58:40
阅读次数:
329
希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一...
分类:
编程语言 时间:
2014-09-15 17:18:09
阅读次数:
235
上篇文章讲到插入排序算法,是一个标准的增量方法:在排好的子数组后,将元素插入,形成新的数组。今天要介绍的是一种新方法:分治法。 分治法,将原问题划分成n个规模较小而结构与原问题相似的子问题;递归地解决这些子问题,然后再合并其结果,就能得到原问题的解。在每一层递归上都会有三个步骤:分解:将原问题...
分类:
其他好文 时间:
2014-09-14 19:14:37
阅读次数:
199
背景 当前存在排序的方法,这里以插入排序为例子,分析一个算法产生的过程。问题描述 有这么一个n个数的输入,我们希望的输出是一个有序的集合。算法描述 插入排序算法是对少量元素进行排序的有效算法。插入排序的原理和我们平时打牌的做法差不多。在开始摸牌的时候,我们的左手是空的,桌子上放着我们看不到数字...
分类:
其他好文 时间:
2014-09-13 17:08:15
阅读次数:
142
算法思想
从小到大排序
N1:遍历数组 array[10000], i 为数组坐标,从1开始
N2:以 i 为基数 tmpV=array[i],[0 ,i-1] 为区间坐标,(0+i-1)/2 为 mid 坐标
N3:比较 tmpV 与 array[mid],如果大于,则区间为 [mid+1,i-1],否则为[0,mid-1]
N4:遍历所有 i 实现以上递归步骤,直到 右坐标l...
分类:
其他好文 时间:
2014-09-09 12:36:48
阅读次数:
201
本文主要说明插入排序、shell排序两种排序方法。一、插入排序 算法思想: 假定这个数组的序是排好的,然后从头往后,如果有数比当前外层元素的值大,则将这个数的位置往后挪,直到当前外层元素的值大于或等于它前面的位置为止.这具算法在排完前k个数之后,可以保证a[1…k]是局部有序的,保证了插入过程的正....
分类:
其他好文 时间:
2014-09-07 00:58:44
阅读次数:
247
1 #include 2 3 //直接插入排序算法 4 void InsertSort(int a[], int size) 5 { 6 int i, j; 7 int key; //待插入的值 8 for (j = 1; j = 0 && a[i]>key) 13 { 14 ...
分类:
其他好文 时间:
2014-09-05 19:55:41
阅读次数:
212
1、插入排序 1)算法简介 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上...
分类:
编程语言 时间:
2014-09-05 18:33:52
阅读次数:
295
笔试面试经常涉及各种算法,本文简要介绍常用的一些算法,并用JavaScript实现。1、插入排序1)算法简介插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通...
分类:
编程语言 时间:
2014-09-04 14:37:09
阅读次数:
223