常用的几种排序方法
文章平均质量分 81
听听丶
看别人翱翔! 我也得给我自己装上俩个翅膀
展开
-
选择排序(解析及代码实现)
选择排序原创 2016-03-03 22:32:15 · 426 阅读 · 0 评论 -
冒泡排序(解析及代码实现)
冒泡排序原创 2016-03-03 22:05:25 · 584 阅读 · 0 评论 -
插入排序(解析及代码实现 二分优化)
插入排序原创 2016-03-04 13:00:18 · 475 阅读 · 0 评论 -
希尔排序(解析及代码实现 结合冒泡,选择,二分插入)
希尔排序并非是一种单纯的排序方法,而是一种对其他排序方法进行优化处理 对于冒泡,选择,插入三种排序方法,所用的时间复杂度都是O(n^2) 这对于大量数据来说太慢,希尔排序,排序方法用的是这三类,但降低了n,这使得排序速度大大加快 希尔是将整个数据划分成gap组,分别对这gap组进行排序 一次排序后,虽然整体还是无序的,但在各组是有序的,其整体相对之前较有序 并再对整体划分gap-组,使之原创 2016-03-07 15:26:17 · 363 阅读 · 0 评论 -
快速排序(解析及代码实现)
//快速排序的时间复杂度为n*logn,常用来处理无序的大量数据(越无序效率越高) //第一种 //取每一段数据的第一个数作为枢轴,保存,并空出位置,纪为a[empty],empty=0; //从右开始找j=a.length-1 --找到一个数a[j]小于枢轴,将其移动到a[empty]处,empty=j; //开始从左开始找 i=1 ++ 找到一个数a[i]大于枢轴,将其移动到a[emp原创 2016-03-07 15:36:37 · 342 阅读 · 0 评论 -
归并排序(解析及代码实现)
归并排序常用与排序组合俩个有序的数列,使之变成一个整体有序的序列 对于俩个有序的序列,只需按顺序将第一个进行比较,大/小者按排序要求放在一个新得数列中 对于一个无序的数列用归并排序时需要将整个数列分解成一个个有序的数列(分解为1) 运用归并,使之有序,虽然归并排序的时间复杂度与快排一样是属于O(n*logn)级,但是需要额外空间复杂度O(n)原创 2016-03-07 21:31:37 · 513 阅读 · 0 评论