本文将介绍三种排序算法--插入排序,希尔排序,堆排序。本文所有例子都是使用升序一.插入排序算法思想维护一个有序数组,将要插入的数据与有序数组自最后一个元素直到合适位置的数一一比较。eg:有序数组:1,3,5,6,7现在待插入数据为2,那么他将会和7,6,5,3,依次作比较..
分类:
编程语言 时间:
2016-05-23 19:35:23
阅读次数:
256
本文将介绍三种排序算法--插入排序,希尔排序,堆排序。本文所有例子都是使用升序一.插入排序算法思想维护一个有序数组,将要插入的数据与有序数组自最后一个元素直到合适位置的数一一比较。eg:有序数组:1,3,5,6,7现在待插入数据为2,那么他将会和7,6,5,3,依次作比较..
分类:
编程语言 时间:
2016-05-23 19:34:09
阅读次数:
221
在各类算法中,排序算法是最基本的内容。在这里主要分享一个冒泡排序,选择排序,插入排序,希尔排序,快速排序和堆排序以及合并排序。
1、冒泡排序
这里是最基础的了,不用多说。
public static void bubbleSort(int[] a){
int temp;
for(int i=1;i<a.length;i++){
for(int j=0;j<a.length-i;...
分类:
编程语言 时间:
2016-05-23 15:22:41
阅读次数:
213
插入排序 插入排序的基本思想为逐个考察每个待排序元素,将每一个新元素插入到前面已经排好序的序列中适当的位置上,使得新序列仍然是一个有序序列。插入排序可分为直接插入排序和希尔排序。 1.直接插入排序 介绍:直接插入排序是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好序的有序表中,从而得到一 ...
分类:
编程语言 时间:
2016-05-22 21:35:23
阅读次数:
195
都是基于内存的排序算法,包括插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序 14年在网易Blog上写的,现把它放到这里。 一,直接插入排序 总体思路:位于表中后面的元素依次与表中前面的元素比较,若比之小,则还需继续和更前面的元素比较,直至遇到一个比它大的元素或者比较到第一个元 ...
分类:
编程语言 时间:
2016-05-22 21:29:07
阅读次数:
250
●直接插入排序(InsertSort)1、算法描述:该算法是一种简单直观的是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上只需用到O(1)的额外空间的排序,因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位为最新..
分类:
编程语言 时间:
2016-05-22 18:41:12
阅读次数:
249
插入排序分为:直接插入排序,二分插入排序(又称折半插入排序),链表插入排序,希尔排序(又称缩小增量排序)。属于稳定排序的一种(通俗地讲,就是两个相等的数不会交换位置)。在这里我具体讲直接插入排序和希尔排序。直接排序插入直接插入排序是由两层嵌套循环组成的。外..
分类:
编程语言 时间:
2016-05-22 18:40:12
阅读次数:
198
数据结构中的排序算法分为比较排序,非比较排序。比较排序有插入排序、选择排序、交换排序、归并排序,非比较排序有计数排序、基数排序。下面是排序的具体分类:1.直接排序主要思想:使用两个指针,让一个指针从开始,另一个指针指向前一个指针的+1位置,两个数据进行比较voidI..
分类:
编程语言 时间:
2016-05-22 18:39:26
阅读次数:
282
●快速排序(QuickSort)1、算法描述:在平均状况下,排序n个数据要O(nlg(n))次比较。在最坏状况下则需要O(n^2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他O(nlg(n))算法更快,因为它的内部循环(innerloop)可以在大部分的架构上很有效率地被实现出来,且在..
分类:
编程语言 时间:
2016-05-22 18:34:12
阅读次数:
232