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

八种基本排序方法

时间:2018-08-17 00:43:27      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:插入排序   递归   nlogn   设置   分享   直接   gif   info   一点   

一、直接插入排序(内部排序、O(n2)、稳定)

  原理:从待排序的数中选出一个来,插入到前面的合适位置。

二、选择排序(O(n2)、不稳定)
  与直接插入排序正好相反,选择排序是从待排序的数中选出最小的放在已经排好的后面,这个算法选数耗时。

三、快速排序(O(nlogn)、不稳定)

  快速排序简称快排,是一种比较快的排序,适合基本无序的数据,为什么这么说呢?下面我说下快排的思路:

  设置两个指针:i和j,分别指向第一个和最后一个,i像后移动,j向前移动,选第一个数为标准(一般这样做,当然快排的关键就是这个“标准”的选取),从后面开始,找到第一个比标准小的数,互换位置,然后再从前面,找到第一个比标准大的数,互换位置,第一趟的结果就是标准左边的都小于标准,右边的都大于标准(但不一定有序),分成两拨后,继续递归的使用上述方法,最终有序!

四、冒泡排序(稳定、基本有序可达O(n),最坏情况为O(n2))

  冒泡排序是一种很简单,不论是理解还是时间起来都比较容易的一种排序算法,思路简单:小的数一点一点向前起泡,最终有序。

五、归并排序

  归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
  首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。

技术分享图片

 

技术分享图片

八种基本排序方法

标签:插入排序   递归   nlogn   设置   分享   直接   gif   info   一点   

原文地址:https://www.cnblogs.com/xinsir/p/9490885.html

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