归并排序 merge sort

归并排序是基于归并操作的排序算法。归并排序是对分治思想的典型应用。 归并排序说起来很简单:先将数据分开排序,然后再合并起来,最后形成一个排好的序列。 合并操作:比较a[i]和b[j],如果a[i]b[j],令r[k]=b[j],然后令k和j分别加1。直到两个数组中某个数组的全部元素都复制到数组...

2017-10-17 21:59:24

阅读数:52

评论数:0

希尔排序 shell sort

希尔排序又叫做减小增量排序,是对插入排序的改进。希尔排序是按下标的一定增量分组,然后对各组进行插入排序。它是一种不稳定的排序方法。 希尔排序的排序方法(以将a[n]从小到大排序为例): 首先选取小于n的增量d1,将a[n]分成d1组,对这d1组数据分别进行插入排序,然后选取小于d1的增量d2,...

2017-10-15 18:09:09

阅读数:47

评论数:0

快速排序 quick sort

快速排序是平时用的比较多的一种排序算法。它是基于分治思想的采用递归实现一种排序算法。 它是这样工作的(假如是对数组a[n]从小到大排列):首先选定一个比较的基准元素(一般选取第一个元素),然后将不大于它的元素排在它前面,不小于它的元素排在它后面,这样就把一个数组分成了两个部分,一个部分不大于基准...

2017-10-15 01:40:27

阅读数:59

评论数:0

选择排序 select sort

选择排序,可以说是冒泡排序的进化版,同样都是每一趟选出最大或者最小的元素,但是选择排序比起冒泡排序来说少了很多交换环节,因为选择排序会先记录最大元素的位置,当所有的数据都比较过之后,将记录位置的元素与待排序序列的第一个元素进行交换,也就是说选择排序每一趟都只进行一次交换。 以a[]={3,1,4...

2017-10-13 09:29:04

阅读数:90

评论数:0

插入排序 insert_sort

插入排序,是一种稳定的排序方法,在要排序的数据量不是很大的情况下是比较有效的。 所谓稳定的排序方法,就是说假如要排序的数据中有两个相同的数据,排序完成后,这两个数据的相对位置没有变化,或者直接说没有交换这两个数据的位置。 插入排序的工作方式是将无序的数组元素一个个的插入到有序的数组中,如果只给...

2017-10-13 08:19:41

阅读数:72

评论数:0

冒泡排序 bubble sort

冒泡排序,说起来这是我最早接触的排序算法。今天在这里写一下我对这个算法的理解。 冒泡排序是通过比较和交换来实现排序的。 在有n个数据的情况下,进行n-1轮遍历,每次遍历分别进行n-1、n-2、n-3、······、2、1次比较。具体情况是这样的(以将数组a[n]从小到大排序为例): 第一轮交换:...

2017-10-12 18:11:38

阅读数:80

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭