摘要: 要想成为编程牛人,练习ACM题目是最好的途径,今天终于开始了,勉励自己以后更上一层楼,成为牛人。对了发现一个好的博客:http://acm.cplusplus.me/category/raceACM解题报告http://www.cplusplus.me/ C/C++程序员之家HDU1000题目链接:http://icpc.njust.edu.cn/Hdu/1000题目代码:#include <stdio.h>void main(){ int a,b; while(scanf("%d%d",&a,&b)!=EOF) { printf("% 阅读全文
posted @ 2013-05-13 17:42 李VS超 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 计算机常用算法1、迷宫求解2、汉诺塔3、八皇后4、约瑟夫环问题5、括号匹配问题6、伙伴系统7、字符串操作各种算法C语言版数据挖掘经典算法:1、机器学习经典算法:1、图、文档文件夹中:计算机经典算法 都要实现一遍 阅读全文
posted @ 2013-05-13 17:11 李VS超 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 单词 查找树:高级数据结构的第一个经验:1、在博客中加入网络链接、论文链接,对一个数据结构本身及其本质,极其变形有一个全面的了解2、对于从来没写过的数据结构和算法:第一遍参考别人的代码快速写出是一种高效率的方法,可以变通一下,不要再一个从来未接触过的东西上试图自己想出来,太耗时间。参考论文:http://d.wanfangdata.com.cn/Periodical_jsjgcykx201004032.aspxhttp://www.cnblogs.com/tanky_woo/archive/2011/06/08/2075613.html参考文献:http://www.cnblogs.com/t 阅读全文
posted @ 2013-05-13 16:46 李VS超 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 选择排序的思想是在记录中选择关键字最小的记录作为有序序列中第i个记录。其中简单选择排序时最常见的。其他变形有,堆排序,树形选择排序等。下面给出简单选择排序的基本算法:#include "stdafx.h"#include<iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ int sarr[7]={49,38,65,97,76,13,27}; void SelSort(int arr[],int n); SelSort(sarr,7); for(int i=0;i<7;i++ 阅读全文
posted @ 2013-05-13 16:28 李VS超 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 快速排序的算法是通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两个子序列应用这个方法进行排序。先总结一下写快速排序的过程中发生错误:错误一:递归中还用了while,导致这个递归不能停止。错误二:元素的大小逻辑关系搞错了。快速排序算法首先需要将获得一次划分获得的位置,并以此位置来递归的处理左侧子序列和右侧子序列。/*一次划分算法:1、选第一个元素为基准元素。2、从后向前搜索第一个比基准元素小的,交换到基准元素所在位置。3、从前向后搜索第一个比基准元素大的,交换上述空缺的位置。4、将基准元素赋值到该有的位置,返回该基准元素。*/int Pa 阅读全文
posted @ 2013-05-13 15:39 李VS超 阅读(270) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2013-05-09 22:40 李VS超 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 在一些应用问题中,如最小生成树算法中,需要将n个不同元素划分成一组不相交的集合。开始时,每个元素自成一个单元素集合,然后按照一定规律将归于同一组元素的集合合并。实现这个功能的数据结构叫做并查集。并查集需要支持下面三种操作:1、Union 把子集2加入到子集1中。2、Find 搜索单元素x所在集合,并返回该集合的名字。3、UFSet 构造函数,主要完成初始化,将该分类数组的元素均置为-1。下面介绍一个简单的并查集的实现,抓住主要思想://并查集类声明class UFSet{public: UFSet(int n); int Search(int x); //搜索 void SetUnion(i. 阅读全文
posted @ 2013-05-07 17:35 李VS超 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 在一些应用中,通常需要先收集一部分数据,从中挑选出具有最小或最大关键码的记录开始处理,接着,可能会收集更多的数据,并处理当前数据集中具有最大或最小关键码的问题。这样的数据结构叫做堆,这里给出最小堆的实现。堆是这样一种数据结构,其根结点都小于左右子女的完全二叉树。1、插入算法:插入到最后一个结点,然后从下往上调整成最小堆。2、删除算法:删除根结点,从上往下调整成最小堆。3、从下往上调整算法。4、从上往下调整算法。两类错误:1、while(parent>0) //while出错:因为while陷入死循环 SiftDown(parent); //递归到0 递归程序中还写了循环,一般会陷入死循环 阅读全文
posted @ 2013-05-06 11:29 李VS超 阅读(579) 评论(0) 推荐(0) 编辑
摘要: 待更新... 阅读全文
posted @ 2013-05-04 21:16 李VS超 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 图的深度优先搜索和广度优先搜索具有很多实用价值,我写这两个算法花了好久,最终的到了几个宝贝而惨痛的经验。总结如下:1、以图的深度优先搜索未例,该问题本身具有递归的性质,我试着借助栈的来实现深度优先搜索的非递归算法,费了好大的力气,还是没有弄出来。如果问题本身具有递归性质,则用递归算法几乎是最好的方法。2、当面临一个复杂问题,该问题中用到了其他的功能,把其中这些功能分出来写成独立的函数实现几乎是最好的方法.从《操作系统的设计和实现》中可以看到,当作者处理一个复杂问题时,并不会考虑其中用的功能如何实现,只用一个函数来表示,这样简化了问题的解答,是解决复杂问题的方法。3、单步调试威力无穷,当程序在大 阅读全文
posted @ 2013-05-04 16:51 李VS超 阅读(698) 评论(0) 推荐(0) 编辑