java的排序算法,直接排序,插入排序,交换排序,归并排序...
分类:
编程语言 时间:
2014-08-15 16:06:09
阅读次数:
348
快速排序已经看过好几遍了,经常因为小的bug,写错程序,为了以后少犯类似的错误,在这记下来。快速排序的原理比较简单,运用递归的思想,每次用一个元素将原来的数组进行分割,关键是找对分割的位置。将前后两部分分割成小于分割元素和大于分割元素,然后递归对前后两部分继续快速排序两部分代码:第一部分是快速排序的...
分类:
其他好文 时间:
2014-08-14 13:18:48
阅读次数:
213
希尔算法简介 常见排序算法一般按平均时间复杂度分为两类:O(n^2):冒泡排序、选择排序、插入排序O(nlogn):归并排序、快速排序、堆排序简单排序时间复杂度一般为O(n^2),如...
分类:
编程语言 时间:
2014-08-13 21:57:07
阅读次数:
271
//快速排序思想:选择数组最后一个数(key),比它小的排他前面 ( key放中间 ) 比它大的排后面,
然后递归 终止条件(数组只有一个数)
public class Sort> { //能排序的都是能比较的,所以必须继承java.lang.Comparable
public void quick(T[] array){
sort(array,0,array.length...
分类:
编程语言 时间:
2014-08-12 18:59:34
阅读次数:
181
快速排序的原理:首先找一个标兵值,等于某一个元素值;遍历数组,将数组分为小于标兵值和大于标兵值的两部分;然后分别对两个部分采用快速排序,递归。分开数组时,维持一个指针,指向已找到小部分的最后一个元素;一个指针用于遍历。不稳定排序算法。当数组已经有序时,时间复杂度最差,为O(N2),平均、最优情况下都...
分类:
其他好文 时间:
2014-08-12 00:36:13
阅读次数:
146
基础知识: 排序:通过计算机手段将一组随机无序的数列变成有序的数列。常用排序算法有很多,主要有如下的几种: 包括插入排序,冒泡排序,选择排序,堆排序,归并排序,计数排序,基数排序,桶排序,快速排序等。 插入排序,堆排序,选择排序,归并排序和快速排序,冒泡排序都是比较排序,它们通过对数组中的元素...
分类:
其他好文 时间:
2014-08-11 14:45:42
阅读次数:
282
原文:http://blog.csdn.net/t12x3456/article/details/7430700各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序一、冒泡排序(BubbleSort)1. ...
分类:
编程语言 时间:
2014-08-10 21:10:51
阅读次数:
429
快速排序在最坏情况下的时间复杂度为O(n^2),虽然在最坏情况下运行时间比较差,但是快速排序通常是用于排序的最佳选择,因为其平均性能相当好,期望的运行时间为O(nlgn),且在O(nlgn)的记号中隐含的常数因子很小。
快速排序和合并排序有相似之处,都是需要划分序列,在合并排序中,划分的过程很简单,直接选择元素序列的中间位划分位置,排序是在合并的过程中实现的,所以合并排序的合并过程很重要;相比合...
分类:
其他好文 时间:
2014-08-10 15:49:50
阅读次数:
213
排序算法是非常常见的面试笔试问题,考查的一个人的基本功,本文将一些排序做了C++的实现,就当是做个学习总结吧。1、快速排序 快速排序的中心是填坑法,取一个数(这里选取第一个数)作为基准数temp,从队尾开始寻找第一个比基准数小的数a[j],交换a[j]和temp,然后队首开始查找第一个比temp大....
分类:
编程语言 时间:
2014-08-07 03:00:18
阅读次数:
245
各类排序算法总结三.交换类排序[接上]2.快速排序 快速排序是通过比较关键码、交换记录,以某个记录为界(该记录称为支点),将待排序列分成两部分。其中,一部分所有记录的关键码大于等于支点记录的关键码,另一部分所有记录的关键码小于支点记录的关键码。我们将待排序列按关键码以支点记录分成两部分的过程,称为一次划分。对各部分不断划分,直到整个序列按关键码有序. 如果每次划分对一个元素定位后,该元素的左侧子序...
分类:
其他好文 时间:
2014-08-05 22:41:20
阅读次数:
388