排序
momo_mo520
这个作者很懒,什么都没留下…
展开
-
排序算法之 快速排序 及其时间复杂度和空间复杂度
快速排序是排序算法中效率相对较高的,但使用的人却是比较少,大家一般信手拈来的排序算法就是冒泡排序。因为冒泡排序主观,容易理解,而快速排序使用到了递归,大家可能就有点不知所措了。算法分析 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对...转载 2018-05-12 16:30:23 · 1628 阅读 · 1 评论 -
排序算法之 插入排序、希尔(shell)排序 及其时间复杂度和空间复杂度
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后...转载 2018-05-12 17:29:50 · 4763 阅读 · 0 评论 -
白话经典算法系列之五 归并排序的实现(讲的真好)
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plain copy//将有序数组a[]...转载 2018-05-12 19:30:27 · 111 阅读 · 0 评论 -
c 自带的qsort函数
C语言 qsortC 自带了一个排序函数qsort, 使用时要定义一个compare方法。下面是一个例子:/* qsort example */#include <stdio.h> /* printf */#include <stdlib.h> /* qsort */int values[] = { 40, 10, 100, 90, 20, 25 ...转载 2018-06-18 11:22:55 · 237 阅读 · 0 评论