7.1 概 述 7.2 插入排序 7.3 快速排序 7.3 快速排序 7.4 堆排序 7.4 堆排序 7.5 归并排序 7.5 归并排序 7.6 基数排序 7.6 基数排序 7.7 各种排序方法的综合比较 7.7 各种排序方法的综合比较 7.1 概 述 一、排序的定义 二、内部排序和外部排序 三、内 ...
分类:
编程语言 时间:
2016-04-11 18:30:43
阅读次数:
191
归并排序既可以进行内部排序也可以进行外部排序。归并排序的时间复杂度O(N*lgN),空间复杂度为O(N) 在这种情况下可以使用外部归并排序: 若外存中还有N个文件记录,不能一次性读入内存,可以将外存中的文件记录分成若干长度为L的可以读进内存的段,并依次读入内存进行内部排序,将有序子文件(归并段)重新 ...
分类:
编程语言 时间:
2016-04-11 13:54:27
阅读次数:
291
1快排优化 2归并优化 3时间空间复杂度对比 ...
分类:
编程语言 时间:
2016-04-10 06:45:40
阅读次数:
197
七个基础排序算法(均为内部排序):
直接插入排序
希尔排序
冒泡排序
简单选择排序
快速排序
堆排序
二路归并排序排序算法稳定性:经过排序后,具有相同关键码的元素之间的相对次序保持不变,则称该排序方法是稳定的;否则不稳定。直接插入排序:void InsertSort(int a[],int n){ // index start at 1, a[0] is temp one
i...
分类:
编程语言 时间:
2016-03-28 00:15:58
阅读次数:
189
设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。 平均时间复杂度:尽管快速排序的最坏时间为 O(n^2 ), 但就平均性能而言,它是基于关键字比较的内部排序算...
分类:
编程语言 时间:
2016-03-17 00:06:45
阅读次数:
257
1冒泡排序传统冒泡排序 public static void bubble(int[] arr){ int temp; for(int i=arr.length-1;i>0;i--){ for(int j=0;j<i;j++){ if(arr[j]>arr[j+1]){ temp=arr[j]; a
分类:
编程语言 时间:
2016-03-02 11:09:18
阅读次数:
243
1. 基本思想 将待排序记录Key=A[i+1]插入到已排序序列A[1…i]中。Key由后向前依次与A[1…i]中的元素进行比较,若A[x]<=Key,将Key插入到A[x]的后面,即A[x+1]=Key,否则将元素A[x]后移。 S0:从无序序列A[n]的第一个元素A[1]开始,该元素可被认定已完
分类:
编程语言 时间:
2016-02-24 14:02:36
阅读次数:
227
这里的排序方法是发生在内存中,因此是内部排序。 1.插入排序-直接插入排序 基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 稳定性:如果碰见一个和插入元素相等的,那
分类:
编程语言 时间:
2016-02-21 18:26:10
阅读次数:
180
一、问题描述 内部排序是一件具有重大意义的问题,许多项目的实现中都需要用到排序。 我们知道,排序的算法有许多种,每种排序算法的时间复杂度和空间复杂度不尽相同。在解决实际问题时,往往需要根据实际需要选择排序算法。 本实验重点介绍希尔排序的算法实现及其原理,简要说明与其相关的直接排序算法,并讨论希尔排序
分类:
编程语言 时间:
2016-02-09 08:06:51
阅读次数:
216
一、问题描述 内部排序是一件具有重大意义的问题,许多项目的实现中都需要用到排序。 我们知道,排序的算法有许多种,每种排序算法的时间复杂度和空间复杂度不尽相同。在解决实际问题时,往往需要根据实际需要选择排序算法。 上次实验已经讨论了希尔排序的实现及其原理,本实验重点介绍另一种排序算法——快速排序。实验
分类:
编程语言 时间:
2016-02-09 08:04:09
阅读次数:
256