加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

十大经典排序算法总结(含Java代码实现)

发布时间:2019-08-29 00:57:59 所属栏目:建站 来源:佚名
导读:副标题#e# 最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在桶排序算法中对每个桶进行排序直接使用了Collection.sort()函数,这样虽然能达到效果,但对于算法研究来讲

6.3 代码实现

  1. /** 
  2.  * 快速排序方法 
  3.  * @param array 
  4.  * @param start 
  5.  * @param end 
  6.  * @return 
  7.  */ 
  8.  public static int[] QuickSort(int[] array, int start, int end) { 
  9.  if (array.length < 1 || start < 0 || end >= array.length || start > end) return null; 
  10.  int smallIndex = partition(array, start, end); 
  11.  if (smallIndex > start) 
  12.  QuickSort(array, start, smallIndex - 1); 
  13.  if (smallIndex < end) 
  14.  QuickSort(array, smallIndex + 1, end); 
  15.  return array; 
  16.  } 
  17.  /** 
  18.  * 快速排序算法——partition 
  19.  * @param array 
  20.  * @param start 
  21.  * @param end 
  22.  * @return 
  23.  */ 
  24.  public static int partition(int[] array, int start, int end) { 
  25.  int pivot = (int) (start + Math.random() * (end - start + 1)); 
  26.  int smallIndex = start - 1; 
  27.  swap(array, pivot, end); 
  28.  for (int i = start; i <= end; i++) 
  29.  if (array[i] <= array[end]) { 
  30.  smallIndex++; 
  31.  if (i > smallIndex) 
  32.  swap(array, i, smallIndex); 
  33.  } 
  34.  return smallIndex; 
  35.  } 
  36.  /** 
  37.  * 交换数组内两个元素 
  38.  * @param array 
  39.  * @param i 
  40.  * @param j 
  41.  */ 
  42.  public static void swap(int[] array, int i, int j) { 
  43.  int temp = array[i]; 
  44.  array[i] = array[j]; 
  45.  array[j] = temp; 
  46.  } 

6.4 算法分析

最佳情况:T(n) = O(nlogn) 最差情况:T(n) = O(n2) 平均情况:T(n) = O(nlogn)

7、堆排序(Heap Sort)

堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序:堆排序

7.1 算法描述

将初始待排序关键字序列(R1,R2….Rn)构建成大顶堆,此堆为初始的无序区;

将堆顶元素R[1]与最后一个元素R[n]交换,此时得到新的无序区(R1,R2,……Rn-1)和新的有序区(Rn),且满足R[1,2…n-1]<=R[n];

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读