排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。
常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。
本文将依次介绍上述八大排序算法。
算法一:插入排序
插入排序示意图
插入排序是一种最简单直观的排序算法,它的工作原理是...
分类:
其他好文 时间:
2014-08-18 14:37:12
阅读次数:
255
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。本文将依次介绍上述八大排序算法。算法一:插...
分类:
其他好文 时间:
2014-08-18 14:20:12
阅读次数:
259
插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。
一、直接插入排序...
分类:
其他好文 时间:
2014-08-17 09:12:02
阅读次数:
211
java的排序算法,直接排序,插入排序,交换排序,归并排序...
分类:
编程语言 时间:
2014-08-15 16:06:09
阅读次数:
348
希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。
基本思想:
先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2
希尔排序的实现代码:
#include
using name...
分类:
其他好文 时间:
2014-08-14 14:09:58
阅读次数:
170
飞跃原野
Time Limit: 5000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
勇敢的法里奥出色的完成了任务之后,正在迅速地向自己的基地撤退。但由于后面有着一大群追兵,所以法里奥要尽快地返回基地,否则就会被敌人逮住。
终于,法里奥来到了最后的一站:泰拉希尔原野,穿过这里就可以回到基地了。然而,敌人依然紧...
分类:
其他好文 时间:
2014-08-14 01:32:37
阅读次数:
315
希尔算法简介 常见排序算法一般按平均时间复杂度分为两类:O(n^2):冒泡排序、选择排序、插入排序O(nlogn):归并排序、快速排序、堆排序简单排序时间复杂度一般为O(n^2),如...
分类:
编程语言 时间:
2014-08-13 21:57:07
阅读次数:
271
经典排序算法总结(代码)·冒泡法·快速排序·插入排序·希尔(shell)排序·选择排序·堆排序·归并排序附:排序算法原理:http://zh.wikipedia.org/wiki/Category:%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95flash演示:http://...
分类:
其他好文 时间:
2014-08-13 17:43:06
阅读次数:
257
测试代码如下。/** @hushunfeng 希尔排序 从小到大排列*/#include//单次希尔排序,即一次直接插入排序//array为需要排序的数组//dk为希尔排序算法中的增量void shellInsert(int *array,int dk) { //--- ...
分类:
其他好文 时间:
2014-08-13 12:59:06
阅读次数:
177
希尔排序的时间复杂度是O(n^1.3)~O(n^2),空间复杂度是O(1)。
代码如下:
/**
* 源码名称: ShellSort.java
* 日期:2014-08-11
* 程序功能:希尔排序
* 版权:CopyRight@A2BGeek
* 作者:A2BGeek
*/
public class ShellSort {
public void shellSort(i...
分类:
其他好文 时间:
2014-08-11 11:59:02
阅读次数:
212