排序的基本概念
假设含有n个记录的序列为{r1,r2,……,rn},其相应的关键字分别为{k1,k2,……,kn},需确定1,2,……,n的一种排序p1,p2,……,pn,使其相应的关键字满足kp1≤kp2≤……≤kpn非递减(或非递增)关系,即使得序列称为一个按关键字有序的序列{rp1,rp2,…...
分类:
其他好文 时间:
2014-05-16 05:25:02
阅读次数:
341
前面三篇文章分别介绍了插入排序、选择排序和,今天将最后两个排序讲完,分别是归并排序和基数排序。...
分类:
其他好文 时间:
2014-05-14 01:13:39
阅读次数:
346
希尔排序是由D.L.Shell于1959年提出的,所以称为希尔排序。希尔排序又称缩小增量排序,是插入排序的一种改进。
基本思想:希尔排序是基于插入排序的以下特点:待排序的序列元素数量越少排序速度越快;待排序序列的元素基本有序时排序速度越快;基于以上思想将待排序序列分为多个子序列分别进行插入排序,然后...
分类:
其他好文 时间:
2014-05-13 22:11:01
阅读次数:
272
//升序void insertion_sort(vector &num){
for(int i = 1; i =0 && num[j] >= val){
num[j+1] = num[j];...
分类:
其他好文 时间:
2014-05-13 11:42:59
阅读次数:
190
直接插入排序是一种实现较为简单的排序算法。基本的思想是,从数组的第二个元素起,每次选取一个元素,与前面已经排序数组的元素比较,找到该元素的合适位置。不多说,直接上代码。#include
#include #include using namespace std;const int arrSize =...
分类:
其他好文 时间:
2014-05-12 20:59:47
阅读次数:
295
public class InsertSort{ public static void
main(String[] args){ int[] sortArray = new int[]{5,7,4,2,9,8,3,6};
System.out.println("before sorting ,t.....
分类:
编程语言 时间:
2014-05-10 03:13:15
阅读次数:
342
(一)插入排序
算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。
插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素...
分类:
其他好文 时间:
2014-05-09 22:38:41
阅读次数:
342
一、冒泡排序冒泡排序算是最基础的一种算法了,复杂度为O(N^2),其基本思想是:从最低端数据开始,两两相邻比较,如果反序则交换。代码如下:/*最基本的冒泡排序*/void
BubbleSort1 (int n, int *array) /*little > big*/{ int i, j...
分类:
其他好文 时间:
2014-05-09 13:02:57
阅读次数:
319
直接插入排序对待排数量较少且基本有序的序列,其执行效率是非常高的,希尔排序正是利用了这点,将一个无序的序列拆分成几个子组,然后对几个子组分别进行插入排序。注意,这儿的分组并不是简单的{a1,a2,a3,b1,b2,b3,c1,c2,c3}(相同字母为一组),而是进行{a1,b1,c1,a2,b2.....
分类:
其他好文 时间:
2014-05-09 12:59:34
阅读次数:
280