1.稳定性比较 插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的 选择排序、希尔排序、快速排序、堆排序是不稳定的 2.时间复杂性比较 平均情况 最好情况 最坏情况 归并排序 O(nlogn) O(nlogn) O(nlogn) 基数排序 O(n) O(n) O(n) 快速排序 O( ...
分类:
编程语言 时间:
2016-09-18 01:14:18
阅读次数:
241
推荐:http://www.cnblogs.com/roucheng/p/cppjy.html ...
分类:
编程语言 时间:
2016-05-31 12:22:17
阅读次数:
475
基本思想:将若干有序序列逐步归并,最终归并成一个有序序列。 二路归并排序 基本思想:将序列分为若干有序序列(开始为单个记录),两个相邻有序的序列合并成一个有序的序列,重复进行,直到整个序列有序。 一次归并过程:两个有序序列a、b,目标数组c。每次往目标数组c中放一个记录,a、b序列谁小就放谁。直到一... ...
分类:
编程语言 时间:
2016-05-04 19:06:23
阅读次数:
186
七个基础排序算法(均为内部排序):
直接插入排序
希尔排序
冒泡排序
简单选择排序
快速排序
堆排序
二路归并排序排序算法稳定性:经过排序后,具有相同关键码的元素之间的相对次序保持不变,则称该排序方法是稳定的;否则不稳定。直接插入排序:void InsertSort(int a[],int n){ // index start at 1, a[0] is temp one
i...
分类:
编程语言 时间:
2016-03-28 00:15:58
阅读次数:
189
各种排序算法比较1.稳定性比较插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的选择排序、希尔排序、快速排序、堆排序是不稳定的2.时间复杂性比较插入排序、冒泡排序、选择排序的时间复杂性为O(n2)其它非线形排序的时间复杂性为O(nlog2n)线形排序的时间复杂性为O(n);3.辅助空...
分类:
编程语言 时间:
2015-12-23 21:19:13
阅读次数:
226
1.从时间复杂度比较 从平均时间复杂度来考虑,直接插入排序、冒泡排序、直接选择排序是三种简单的排序方法,时间复杂度都为O(n2),而快速排序、堆排序、二路归并排序的时间复杂度都为O(nlog2n),希尔排序的复杂度介于这两者之间。若从最好的时间复杂度考虑,则直接插入排序和冒泡排序的时间复杂度最好,....
分类:
编程语言 时间:
2015-12-05 23:58:35
阅读次数:
471
逆序数=两子序列的逆序数+本序列逆序数 我们知道在对序列进行二路归并排序的时候,要将序列拆分成若干子序列,先将子序列排序,再合并子序列构成最终排序后的序列。二路归并算法还有一个特点,在进行归并操作时候的两个子序列是有序序列,所以,我们可以利用这一点,在归并子序列的时候,其中的子序列内部的逆序数...
分类:
其他好文 时间:
2015-09-15 16:23:45
阅读次数:
139
package algrithm;import java.util.Scanner;public class Sort { public static void mergeSort(int a[], int l, int r) { if (l >= r) return; int mid=(l...
分类:
编程语言 时间:
2015-08-05 23:53:39
阅读次数:
133