根据带排序数据是否全部放入内存,排序分为内排序和外排序。
下面就根据我看书的体会,主要分析内排序的性能。
内排序的种类:插入排序(直接插入排序,希尔排序),选择排序(简单选择排序、堆排序),交换排序(冒泡排序、快速排序),归并排序。
其中用的比较多的是插入排序、归并排序、快速排序。
排序算法的比较:性能的比较可以从以下5个方面进行分析:时间复杂度(平均情况、最好情况、最差情...
分类:
编程语言 时间:
2015-05-06 10:58:22
阅读次数:
150
基本思想编辑选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待...
分类:
编程语言 时间:
2015-05-05 21:08:21
阅读次数:
159
基本思想:
将初始序列(A[0]~A[n-1])作为待排序序列,第一趟在待排序序列(A[0]~A[n-1])中找最小值元素,与该序列中第一个元素A[0]交换,这样子序列(A[0])有序;下一趟排序在待排序子序列(A[1]~A[n-1])中进行。第 i 趟排序,A[i-1]~A[n-1] 中,找到最小元素,与该子序列中第一个元素 A[i-1] 交换。经过n-1趟排序后使得初始序列有序。...
分类:
编程语言 时间:
2015-05-05 16:34:15
阅读次数:
123
每次 从待排序序列中选择出一个最大(或者最小)的记录添加到有序序列的后面即为选择排序。 选择排序主要有:简单选择排序、树形选择排序、堆排序。1、简单选择排序基本思路:重复进行n趟选择,第i趟通过n-i次记录的比较,在n-i+1个记录中选取最小(或最大)的记录与第i个记录进行交换。void se...
分类:
编程语言 时间:
2015-04-28 08:16:43
阅读次数:
120
1.简单选择排序法的思想:通过n-i 次关键字间的比较,从n-i+1 个记录中选出关键字最小的记录,并和第i (1length; i++) 5 { 6 min = i; 7 for(j=i+1; jlength; j++) 8 { 9 ...
分类:
编程语言 时间:
2015-04-24 12:18:03
阅读次数:
176
交换排序(冒泡排序,快速排序);插入排序(直接插入排序,希尔排序);选择排序(简单选择排序,堆排序);归并排序;java源码实现常见内排序
分类:
编程语言 时间:
2015-04-18 21:43:27
阅读次数:
193
在学了冒泡排序后,会发觉这种算法就是不断比较交换。虽简单直接,显然给人一种繁琐的感觉。那有没有更好一点的算法呢?这当然有啦,没有就糟糕透了 :-P这篇文章介绍一种较冒泡要好的排序算法:简单选择排序看到“选择”这两字估计也猜到一二了。没错,这种算法的思想就是:待找到了最适合的那位数的位置我才选择与它进...
分类:
编程语言 时间:
2015-04-16 17:27:20
阅读次数:
163
//c 实现 1 #include "stdafx.h" 2 #include "stdlib.h" 3 4 void swap(int& a,int& b) 5 { 6 int t =a; 7 a = b; 8 b = t; 9 }10 int _tmain(int a...
分类:
编程语言 时间:
2015-04-15 22:58:51
阅读次数:
155
冒泡排序(Bubble Sort)的基本思想:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。时间复杂度为O(n2).简单选择排序(Simple Selection Sort)的基本思想:通过n-i次关键字之间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录交换。应...
分类:
编程语言 时间:
2015-04-03 13:15:56
阅读次数:
267
排序算法有很多种,主要分为插入排序(直接插入排序、二分法插入排序)、交换排序(冒泡排序、快速排序)、选择排序(简单选择排序、堆排序)等,这里不说原理了,只贴代码。原理可以看严蔚敏的数据结构或者网上有人讲的原理很详细。给大家推荐一个链接点击打开链接
1.直接插入排序
package sortpackage;
import java.util.Arrays;
public class inse...
分类:
编程语言 时间:
2015-04-02 16:25:31
阅读次数:
157