排序算法分类:内部排序(在排序过程中不需要访问外存就可以完成排序)外部排序内部排序分类:交换排序冒泡排序快速排序选择排序直接选择排序堆排序插入排序直接插入排序希尔排序合并排序外部排序:
常见的是多路归并算法,即将原文件分为多个能够一次装入内存一部分,分别把每一部分调入内存完成排序,然后对已经排序的....
分类:
其他好文 时间:
2014-06-29 14:23:42
阅读次数:
314
直接插入排序法
插入排序的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后移动,为最新元素提供插入空间。
核心代码://直接插入排序法void I.....
分类:
其他好文 时间:
2014-06-07 04:13:30
阅读次数:
265
stooge排序是一种递归排序算法,这种排序算法不仅慢于一般的有效排序算法(如:插入排序,合并排序,堆排序和快速排序),甚至慢于冒泡排序。是一种简单但低效的排序算法。...
分类:
其他好文 时间:
2014-06-07 01:26:17
阅读次数:
173
在大多数情况下插入排序比选择排序和冒泡排序快些,
int[] a = {222,44,11,63,84,24,53,123,25,98,76,34};挨个读取数组a中的每个元素,将它与前面的数最对比,如果比前面的小就将前面的数向后移,当移动停止时,将该数填充到空出的位置。
第一次:222前面没有数不做变化。
第二次:44小于222,将222后移一位变成了{x,222,11,63,84,24,53,123,25,98,76,34},最后将44填充到x的位置(移动222后空出的位置),数组变成了{44,22...
分类:
编程语言 时间:
2014-06-05 02:37:54
阅读次数:
292
堆排序在运行时间上与合并排序相似,同时又是一种原地(in place)排序算法(在任何时候,数组中只有常数个元素存储在输入数组以外),结合了插入排序和合并排序两种排序算法的优点。...
分类:
其他好文 时间:
2014-06-04 22:39:55
阅读次数:
316
议题:快速排序算法实现之三(三路划分遍历,解决与划分元素相等元素的问题)分析:算法原理:使用三路划分策略对数组进行划分(也就是荷兰国旗问题,dutch
national flag problem)。这个实现是对实现二的改进,它添加处理等于划分元素的值的逻辑,将所有等于划分元素的值集中在一起,并且以后...
分类:
其他好文 时间:
2014-06-03 09:51:51
阅读次数:
386
今天复习了一下数据结构的插入排序,下面是算法和自己的一些理解void charu(int
*a,int length){int i,j,t;for(
i=1;i<length;i++)//将第一个数子看为有序的数组,从第二个数开始依次插入{t=a[i];//将要插入的数记录下来,防止前面的数后移而丢...
分类:
其他好文 时间:
2014-05-30 23:17:07
阅读次数:
220
希尔排序一。个人理解希尔排序(Shell
Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。其实,希尔排序本质也就是直接插入算法的升级,希尔的基本思想,就是先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的...
分类:
其他好文 时间:
2014-05-29 21:49:30
阅读次数:
516
package mainimport ( "fmt" "bufio" "io" "os"
"strconv" "flag")var infile *string=flag.String("i","unsorted.data","File
contains valu...
分类:
其他好文 时间:
2014-05-28 20:32:20
阅读次数:
306
二分法插入排序算法思想简单描写叙述:在插入第i个元素时,对前面的0~i-1元素进行折半,先跟他们中间的那个元素比,假设小,则对前半再进行折半,否则对后半进行折半,直到left>right,然后再把第i个元素前1位与目标位置之间的全部元素后移,再把第i个元素放在目标位置上。二分法没有排序,仅仅有查找。...
分类:
其他好文 时间:
2014-05-28 01:27:10
阅读次数:
182