博主在学习过程中深感基础的重要,经典排序算法是数据结构与算法学习过程中重要的一环,这里对笔试面试最常涉及到的7种排序算法(包括插入排序、希尔排序、选择排序、冒泡排序、快速排序、堆排序、归并排序)进行了详解。每一种算法都有基本介绍、算法原理分析、算法代码。
插入排序
1)算法简介
插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对...
分类:
编程语言 时间:
2015-08-04 19:17:48
阅读次数:
413
这里对笔试面试最常涉及到的12种排序算法(包括插入排序、二分插入排序、希尔排序、选择排序、冒泡排序、鸡尾酒排序、快速排序、堆排序、归并排序、桶排序、计数排序和基数排序)进行了详解。每一种算法都有基本介绍、算法原理分析、图解/flash演示/视频演示、算法代码、笔试面试重点分析、笔试面试题等板块。
一、插入排序
1)算法简介
插入排序(Insertion Sort)的算法...
分类:
编程语言 时间:
2015-08-02 23:27:29
阅读次数:
289
public void test() { //-------------直接插入排序算法 Console.WriteLine("---------直接插入排序算法------------\n"); showArray(...
分类:
编程语言 时间:
2015-07-31 17:37:19
阅读次数:
153
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序算法。插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序。插入排序的Java实现:...
分类:
编程语言 时间:
2015-07-28 23:06:27
阅读次数:
144
内部排序算法总结:排序算法有各自的时间复杂度,并不代表时间复杂度高的算法在任何情况下就比时间复杂度低的算法要低效,相反也一样。排序算法按照其最基本的操作可以分为以下几种类型:插入类排序算法直接插入排序算法折半插入排序算法希尔排序算法选择类排序算法简单选择排序算法堆排序交换类排序算法冒泡排序快速排序1...
分类:
编程语言 时间:
2015-07-20 23:08:18
阅读次数:
147
排序可分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,称为内排序;如果排序过程中需要使用外存,则成为外排序。
内排序有以下几类:
插入类排序:直接插入排序、二分法(折半)插入排序、希尔(缩小增量)排序
选择类排序:简单选择排序、堆排序
交换类排序:冒泡排序、快速排序、三路划分的快速排序
归并类排序:二路归并排序
基数类排序:MSD基数排序、LSD基数排序
各种内部排序算法的比较直接插入...
分类:
编程语言 时间:
2015-07-18 11:09:15
阅读次数:
165
基本思想当插入第i(i≥1)个元素,前面的i-1个元素已经排好序。这时用第i个元素与前i-1个元素进行比较,找到插入位置即将第i个元素插入,原来位置上的元素向后顺移。
代码://待排数据存储在数组a中,以及待排序列的左右边界
public void InsertSort(int[] a, int left, int right) {
int temp;//临时变量
int i, j;//循环标记...
分类:
编程语言 时间:
2015-07-18 09:37:34
阅读次数:
144
基本思想折半插入排序的基本思想与直接插入排序一样,在插入第i(i≥1)个元素时,前面i-1个元素已经排好序。区别在于寻找插入位置的方法不同,折半插入排序是采用折半查找法来寻找插入位置的。
折半查找法的基本思路是:用待插元素的值与当前查找序列的中间元素的值进行比较,以当前查找序列的中间元素为分界,确定待插元素是在当前查找序列的左边还是右边,如果是在其左边,则以该左边序列为当前查找序列,右边也类似。按...
分类:
编程语言 时间:
2015-07-18 08:24:26
阅读次数:
136
/***直接插入排序算法*@authorCinn**/publicclassinsertSort{/***@paramargs*/publicstaticvoidmain(String[]args){int[]array={48,58,50,98,69,51,33,99,100};InsertSort(array);printArray(array);}/***直接插入排序*/publicstaticvoidInsertSort(int[]array){//定义一个临时..
分类:
编程语言 时间:
2015-07-16 14:22:18
阅读次数:
110