算法
文章平均质量分 77
阿木木的忧伤
为说的每一句话负责,说者无心、听者有意,作为一个严谨的程序员,不要让你的无心成为别人前进的阻碍
为写的每一句代码负责,不明所以就不要写在项目中,弄清楚每行代码的作用,才能得到真正的提升
展开
-
将数组左移k位 算法经典案列 用5个程序来分析说明
这是一个很简单的问题,我编写了五个程序来实现这个功能,并对这五个程序进行解释1.原创 2013-10-15 23:01:22 · 1795 阅读 · 0 评论 -
12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球,并且知道此球比其它球是轻还是重,如果13个球呢
题目中只说明了有一个球和其他的重量不同,但是没有说明这个不同的球是重还是轻。令球的编号为1,2,3,4 5,6,7,8 9,10,11,12 每四个一组,分为三组首先1,2,3,4 与5,6,7,8比较(1)1,2,3,4 = 5,6,7,8 ==========>坏球在9,10,11,12中======》1,2与9,10比较 ①1,2原创 2014-03-07 11:09:25 · 1634 阅读 · 0 评论 -
编程命名规范
文章转载于:http://blog.sina.com.cn/s/blog_52cbfc3f0100fdy6.html匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述。其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。目前在Windows程序开发和MFC程序开发中常用的命名规则是匈牙利命名法。下面就是HN命名法的一转载 2013-11-28 19:27:23 · 826 阅读 · 0 评论 -
使用邻接表实现基数排序
使用邻接表实现基数排序可以节省内存使用空间,但是在排序上会有问题,解决的办法就是在分配数组的时候从最后一个数组开始分配,收集的时候从第一个开始收集就可以解决了。实现代码如下:注:使用不同的编译器是不一样的,我是在vc++6.0下编程的,在变量的作用域空间的地方会和其他的编译软件不同。#include #include #include #include /*******原创 2013-11-10 20:50:35 · 634 阅读 · 0 评论 -
改进的堆排序算法
对堆排序的改进1.将数据初始化为大顶堆,交换第一个和最后一个元素,这里是不变的2.重新构造大顶堆是,首先让第一个元素下降h/2的高度(h 为堆的高度)3.下降了h/2层后判断这个元素与它的父节点谁大,如果父节点大继续下沉,下沉的结束条件为h=0 如果父节点小,表明第一个元素下沉时走过头了,然后要往回走,进行上浮操作,上浮操作是肯定能够找到第一个元素的最终位置的4.循环n-1原创 2013-11-04 14:49:29 · 1043 阅读 · 0 评论 -
归并排序算法的改进算法
对于归并算法的四点改进1.不回写,可以减少一半的数组移动2.不递归 ,可以加快执行速度3.无逆序,分段的时候递增的为一段,段数不确定4.与插入相结合,因为数列个数在16以内的话插入排序会比归并排序要快实现代码如下,代码写的比较匆忙,控制语句还是可以再缩减的,大家仅作为一个参考即可#include #include #include #include /****原创 2013-10-31 19:16:17 · 1322 阅读 · 0 评论 -
改进的快速排序算法
快速排序算法的改进思路1.选取好的基准,是两边的数据个数尽量的均匀 取数组的第一个,中间,最后一个数据,取三个数中第二大的数作为基准2. 不递归3.与插入结合,当段内的数组个数小于等于16的时候,使用插入排序具体实现代码如下:#include #include #include #include /**************************原创 2013-11-02 20:43:06 · 1236 阅读 · 0 评论 -
改进的冒泡排序算法
这里改进的冒泡算法并不只是用一个标记记录有没有数据进行交换冒泡算法的改进思想:记录从第0下标开始一直递增的最后一个数的下标,在以后的每趟排序中都是从这个下标开始比较,免去了从头到此下标的比较,同时也能保证在没有数据交换时直接跳出循环改进的冒泡算法的分析:其实改进的冒泡算法并不能缩短很短的时间,在特大的数组长度时才会有所体现,但是在数组长度太大就不会用冒泡排序了,对于n特别的时候,用原创 2013-11-01 08:44:37 · 1346 阅读 · 0 评论 -
欧拉回路的构建及输出欧拉回路的路径
首先,欧拉回路的判断条件必须清楚,这是相对于无向图的(1)图必须是连通的(2)图中点的度数必须是偶数 这里以构建一个度全部相同的欧拉回路,并输出欧拉回路的路径1.构建欧拉回路 连通主要是靠树来保证,首先建立一个度为k的完全图,其中会有很多需要主要的地方 (1)首先构造树 =>保证顶点连通 (2)将度 (3)在补满度的过程中肯定会出现有顶点的度不满足的情原创 2013-10-28 21:56:05 · 1951 阅读 · 2 评论 -
数据结构-八大排序算法总结
一.插入排序 1.直接插入算法 时间复杂度o(n^2) 空间复杂度o(1)#include #include #include #include /**************************插入排序 直接插入排序*************************/void main(){ int n; //输入原创 2013-10-30 21:00:11 · 1033 阅读 · 0 评论