码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构_1 排序

时间:2017-08-01 23:06:30      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:指针   log   复杂度   遍历   从后往前   快速排序   通过   冒泡排序   大根堆   

排序分为四种(交换、选择、插入、合并): 

  1.       交换排序: 包括冒泡排序,快速排序。
  2.       选择排序: 包括直接选择排序,堆排序。
  3.       插入排序: 包括直接插入排序,希尔排序。
  4.       合并排序: 合并排序。

冒泡排序:

  从后往前依次比较,逐个交换,效率较低,时间复杂度为: 0(n) - 0(n^2) 0(n) - 0(n^2)

快速排序:

  通过第一遍的遍历(让left和right指针重合)来找到数组的切割点,平均时间复杂度: N(logN),最坏时间复杂度:  0(n^2)

直接选择排序: 

  找出基准后最小数进行交换,直接选择排序的时间复杂度为:O(n^2)

堆排序:

  构建并输出大根堆,堆排序的时间复杂度:O(NlogN)

直接插入排序:

  以基准从前往后依次比较插入,时间复杂度为:O(N^2)

希尔排序:

  缩小增量排序法,d=count/2k,平均为:O(N^3/2),最坏: O(N^2)

归并排序:

  1. “分”,  就是将数组尽可能的分,一直分到原子级别。
  2. “并”,将原子级别的数两两合并排序,最后产生结果。
  3. 时间复杂度为: O(NlogN),空间复杂度为:  O(N) 

数据结构_1 排序

标签:指针   log   复杂度   遍历   从后往前   快速排序   通过   冒泡排序   大根堆   

原文地址:http://www.cnblogs.com/bingxin/p/7271078.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!