以前自己博客里留了一些java代码实现的排序算法代码,很丑陋,现在看不惯了,刚好最近买了一本《算法 第4版》。索性就一边看看这本书,一边改过去代码,顺便练习C++、python。 所以说,醉翁之意不在酒,《算法》里那些排序算法有什么意思?都是前人留下的东西,后者(现在那些大学生)学这些算法就像古代读 ...
分类:
编程语言 时间:
2016-06-11 17:29:55
阅读次数:
253
排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法对算法本身的速度要求很高。而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将给出详细的说明。
简单排序算法,后面你将看到他们的共同点是算法复杂度为O(N*N):
1.冒泡排序:
#include <iostream.h>
void BubbleSort(in...
分类:
编程语言 时间:
2016-06-02 14:15:26
阅读次数:
194
今天,我们来总结一下排序算法:
排序分为冒泡排序,选择排序,插入排序,希尔排序,合并排序,快速排序,堆排序,基数排序等等,本篇文章我来详细解析冒泡排序,选择排序,直接插入排序。冒泡排序首先说说最简单的冒泡排序:从老谭那本书就开始认识冒泡排序了,这种方法简单易懂:
这张动图可以解释冒泡排序。
接下来,看代码的实现:#include
#include
#i...
分类:
编程语言 时间:
2016-06-02 13:47:13
阅读次数:
191
一,希尔排序算法介绍 ①希尔排序又称缩小增量排序 ,它本质上是一个插入排序算法。为什么呢? 因为,对于插入排序而言,插入排序是将当前待排序的元素与前面所有的元素比较,而希尔排序是将当前元素与前面增量位置上的元素进行比较,然后,再将该元素插入到合适位置。当一趟希尔排序完成后,处于增量位置上的元素是有序 ...
分类:
编程语言 时间:
2016-05-28 22:59:11
阅读次数:
175
一,归并排序介绍 归并排序是一个典型的基于分治的递归算法。它不断地将原数组分成大小相等的两个子数组(可能相差1),最终当划分的子数组大小为1时(下面代码第17行left小于right不成立时) ,将划分的有序子数组合并成一个更大的有序数组。为什么是有序子数组??? 归并排序的递归公式:T(N) = ...
分类:
编程语言 时间:
2016-05-24 11:57:15
阅读次数:
180
一,堆排序介绍 堆是一个优先级队列,对于大顶堆而言,堆顶元素的权值最大。将 待排序的数组 建堆,然后不断地删除堆顶元素,就实现了排序。关于堆,参考:数据结构--堆的实现之深入分析 下面的堆排序算法将数组中的元素从小到大排序,用大顶堆来实现。 二,堆排序算法分析 现给定了一维数组,需要将数组中的元素使 ...
分类:
编程语言 时间:
2016-05-24 10:28:01
阅读次数:
239
一,插入排序介绍 插入排序是基于比较的排序。所谓的基于比较,就是通过比较数组中的元素,看谁大谁小,根据结果来调整元素的位置。 因此,对于这类排序,就有两种基本的操作:①比较操作; ②交换操作 其中,对于交换操作,可以优化成移动操作,即不直接进行两个元素的交换,还是用一个枢轴元素(tmp)将当前元素先 ...
分类:
编程语言 时间:
2016-05-22 23:09:52
阅读次数:
265
来源:http://www.cnblogs.com/wxisme/p/5243631.html 前言 查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般 ...
分类:
编程语言 时间:
2016-05-22 10:53:12
阅读次数:
244
九大基础排序算法小结
一直想做份总结,总是抽不出时间,趁着周末闲着直接用了一整天做一份,一些内容参考了网上的一些博主的总结,还有网络上的一些图片。
好了,接下来就看看内容吧!
排序算法:
排序方法
时间复杂度
空间复杂度
稳定性
选用情况
平均情况
最坏情况
最好情况
...
分类:
编程语言 时间:
2016-05-21 17:43:59
阅读次数:
250
排序在各次面试的过程中问道的次数不少,冒泡排序和快速排序尤多。因此做一些总结,尤其是代码部分。
1. 冒泡排序
(1)思想
在一组数中,对当前未排好序的数,自上而下地对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的数往上冒。
(2)复杂度
平均情况-O(n^2)
最坏情况-O(n^2)(逆序有序)
最好情况-O(n)(正序有序)
空间复杂度-O(1)
(3)稳定...
分类:
编程语言 时间:
2016-05-13 01:14:13
阅读次数:
275