根据排序过程中借助的主要操作,我们将内排序分为四类: 插入排序类 直接插入排序 希尔排序 选择排序类 简单选择排序 堆排序 交换排序类 冒泡排序 快速排序 归并排序类 归并排序从算法的简单性来看,我们将7种算法分为两类:简单算法:冒泡排序、简单选择排序、直接插入排序改进...
分类:
编程语言 时间:
2015-07-18 16:47:34
阅读次数:
142
排序可分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,称为内排序;如果排序过程中需要使用外存,则成为外排序。
内排序有以下几类:
插入类排序:直接插入排序、二分法(折半)插入排序、希尔(缩小增量)排序
选择类排序:简单选择排序、堆排序
交换类排序:冒泡排序、快速排序、三路划分的快速排序
归并类排序:二路归并排序
基数类排序:MSD基数排序、LSD基数排序
各种内部排序算法的比较直接插入...
分类:
编程语言 时间:
2015-07-18 11:09:15
阅读次数:
165
void shellSort(int *arr,int Length){ int temp; for(int gap=Length/2; gap>0;gap/=2){ for(int i=0;i=0&&arr[k]>temp){ arr[k+gap]=arr[k]; k-=gap; } arr[k+...
分类:
编程语言 时间:
2015-07-17 20:47:15
阅读次数:
164
/***(插入排序)希尔排序(最小增量排序)*@authorCinn**/publicclassshellSort{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubint[]array={48,58,50,98,69,51,27,99,100};shleesort(array);printArray(array);}/***希尔排序接口*@paramarra..
分类:
编程语言 时间:
2015-07-17 07:17:38
阅读次数:
148
插入排序:(直接插入排序&希尔排序) using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Sort { public class InsertSort { pu...
分类:
编程语言 时间:
2015-07-15 12:56:57
阅读次数:
113
搞了这么久,终于把几种常用的排序算法搞清楚了时间复杂度为O(n ^ 2)的三个直接插入排序,选择排序,冒泡排序时间复杂度为O(N * logN)的排序算法快速排序,归并排序,希尔排序,堆排序归并排序空间复杂度为O(n)其他空间复杂度均为O(1)直接插入排序 1 import com.gxf.util...
分类:
编程语言 时间:
2015-07-15 12:51:14
阅读次数:
126
一、插入排序
插入排序就是将一个待排数据按其大小插入到一个有序表的适当位置,并插入后仍有序。分为三类:直接插入排序;折半
插入排序;希尔插入排序。
【直接插入排序】
例如,把{4,3,1,2}进行排序,算法过程见图:
通常,有序的序表是r[1]、r[2].....,而r[0]是哨兵,用于存放需要排序的数据,属于赋值空间。
所以,算法时间复杂度是:...
分类:
编程语言 时间:
2015-07-15 11:17:18
阅读次数:
146
数据结构中常见的内部排序算法: 插入排序:直接插入排序、折半插入排序、希尔排序 交换排序:冒泡排序、快速排序 选择排序:简单选择排序、堆排序 归并排序、基数排序、计数排序直接插入排序: 思想:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。 性...
分类:
编程语言 时间:
2015-07-14 13:10:31
阅读次数:
211
插入排序:(直接插入排序&希尔排序)using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Sort{public class InsertSort{public stat...
分类:
编程语言 时间:
2015-07-14 13:02:19
阅读次数:
122