![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础排序算法
civay
这个作者很懒,什么都没留下…
展开
-
插入排序算法
插入排序的主要思想就是,将要插入的数字插入已经有序的数组中去。通常我们认为单独一个数就是有序的。所以我们从数组的第一位(省去第0位排序)开始排序。借用别人博客的一张图片。出处:http://www.cnblogs.com/kkun/archive/2011/11/23/2260265.html 这张图简洁明了的阐述了插入排序的原理。 源代码: void Inserti原创 2014-07-27 22:44:56 · 349 阅读 · 0 评论 -
归并排序算法
1、算法介绍 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。值得注意的是归并排序是一种稳定的排序方法。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。转载 2014-05-20 21:45:05 · 436 阅读 · 0 评论 -
快速排序算法
设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。 一趟快速排序的算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一转载 2014-05-20 17:01:19 · 475 阅读 · 0 评论 -
二叉树的遍历
http://www.cnblogs.com/dolphin0520/archive/2011/08/25/2153720.html转载 2014-05-22 16:47:00 · 364 阅读 · 0 评论 -
选择排序算法
首先要注意到选择排序和插入排序的异同点: 二者都分有序区和无序区,但是选择排序是在无序区选出最小的元素放到有序区的末位以此扩大有序区,而插入排序是将无序区的第一个元素插入到有序区合适的位置。 代码如下:原创 2014-08-04 18:35:17 · 356 阅读 · 0 评论 -
堆排序算法
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。 二叉堆的定义 二叉堆是完全二叉树或者是近似完全二叉树。 二叉堆满足二个特性: 1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。 2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。 当父结点的键值总转载 2014-05-22 14:48:11 · 463 阅读 · 0 评论 -
各类经典算法汇总
今天复习了一下以前学的一些经典算法,在博客园里看到一篇汇总的文章,看起来很方便转载 2014-04-14 14:19:15 · 480 阅读 · 0 评论