【程序人生】-- 算法排序
算法
木子松的猫
为了毫不费力,所以必须努力。
展开
-
排序算法-桶排序1
1、一句话总结2、桶排序的基本思想3、适用范围4、基本步骤5、算法分析6、代码7、优点8、缺点9、启示原创 2016-07-23 20:23:31 · 579 阅读 · 22 评论 -
数据结构导论-第一章
算法的时间复杂度和空间复杂度合称为算法的复杂度。算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度。1、算法分析:一个问题可以有多种不同的求解算法,这就产生了如何评价这些算法的问题。通常评价算法好坏的因素包括一下几个方面:A、正确性:能正确地实现预定的功能,满足具体问题的需要B、易读性:易于阅读原创 2017-07-07 08:55:24 · 887 阅读 · 17 评论 -
排序算法系列-交换之冒泡排序
前言 所谓排序就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域中考虑到数据的各种限制和规范,要得到一个符合实际的优秀算法,得经过大量的推理和分析 在开发中,对一组数据进行有序地排列是原创 2017-07-29 21:20:56 · 381 阅读 · 28 评论 -
排序算法系类-交换之冒泡优化
前言上一篇博客介绍了冒泡排序:点击打开链接,今天我来说说冒泡的优化。优化一冒泡排序的重要思想就是两两比较,然后交换,这样对于一组杂乱无章的小型数组来说是很有效的,但是如果一个数组经过几轮交换已经变的有序了,例如[2,1,3,4,5,6,7]这个数组,经过第一轮,已经变成有序的了,但顽固的冒泡还是要继续进行没有营养的两两比较,从而牺牲了时间。所以对于这种情况,对冒泡排序进原创 2017-08-01 11:27:48 · 273 阅读 · 9 评论 -
排序算法系列-交换之快速排序
前言快速排序和冒泡排序都属于交换排序。首先一听这名字,快速排序,似乎它的时间复杂度相比于冒泡排序会简单很多,那到底它的程序设计有没有对得起他的名字呢,让我们一探究竟,哈哈。。。。另外在一位大咖的博客中发现,很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。看到这儿,有没有一种想立刻掌握它的冲动,反正我是原创 2017-08-02 14:55:23 · 306 阅读 · 13 评论 -
排序算法系列-选择之直接选择
前言通过最近的几次讲课,越来越发现了算法的重要性,冒泡,选择,插入是三种基础排序,打好基础,以便追求更高深的知识。直接选择排序基本思想:在第i次选择操作中,通过n-i次比较,从n-i+1个记录中选出键值最小的记录,并和地i(1可以这样理解:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小原创 2017-08-14 16:11:10 · 266 阅读 · 12 评论 -
回溯法解决n皇后问题
要求:1.一行只能放一个皇后,所以我们一旦确定此处可以放皇后,那么该行就只能放一个皇后,下面的就不要再搜了。2.每一列只能放一个皇后,所以我们下次搜索就不要再搜已经放过的皇后了。3.斜的45°线也只能放一个。算法思路: 首先我们分析一下问题的解,我们每取出一个皇后,放入一行,共有八种不同的放法,然后再放第二个皇后,同样如果不考虑规则,还是有八种放法。于是我们可以用原创 2017-11-05 20:39:25 · 766 阅读 · 9 评论