其实学习计算机没有那么难的,计算机的所有,我是说所有的规范,模型甚至设计原理都来源于生活,来源于对其他行业的借鉴。 其中两个例子最为明显:1、对于设计模式的探讨,设计模式本生不是计算机行业才有的,这是来源于建筑,并在多个…
标签:算法
我的算法书收藏
我常感叹到,学计算机的人是幸福的,因为在这个领域中有如此多的通俗易懂(相对来说)的经典好书,你需要做的只是坚持把它们一本一本读下去而已。学力学就没有这样的好事了(抱怨一下),除了论文就是论文,满篇公式,晦涩坚深,真不是给…
插入排序算法Java实现
插入排序的思想是循环数组中每一个元素,然后将这些元素依次插入到一个有序的数列中去,实现数组的排序,也就是说循环到的当前元素索引的左侧都是已经排好序的,针对当前元素,将它依次与相邻的左侧元素比较,小于左侧就两个交换,循环比…
队列学习--数组实现
今天学习了队列,队列的思路和栈差不多,他只是先进先出(FIFO)的方式。他的主要操作和栈有:IsEmpty判断空,EnQueue入队,(栈是 push,不过没有什么大的区别)。DeQueue出队。其核心数据也是很相似,也…
字符串中第一个只出现一次的字符
题目:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出‘b’ 思路:这个题目要找字符串中只第一个只出现一次的字符,可以使用哈希表的方法。将每个字符作为哈希表的键,将字符出现的次数作为值。由于ja…
算法小结
最近在做算法题的时候遇到了没有思路的几个题,在这里整理一下: 1.10亿个整数中找到出现次数最多的100个整数。 基本思路:哈希+小顶堆 Hash就是为了统计每个数出现的次数,然后发生冲突的地方用个链表把它链接起来,在每…
C++实现 排序树
#include<iostream> using namespace std; template<typename T1> class sortTree; //根的类型 template<t…
Java数组越界问题
测试了 好久 总有错误,后来才发现是数组越界了 分享一下,希望能对大家有帮助 //时间:2013.10.30 //程序功能: 对学生成绩排序并且对应输出 //通过两个数组分别存储名字 和 成绩 然…
选择排序简单实现
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末…
黑白棋UVa220
#include "stdafx.h" #pragma warning(disable:4996) int ChessBox[8][8] = {0};//0为空,1为黑,2为白 int MrcWhile(int x,in…
排序算法总结(一)计数排序
比较排序算法时间复杂度下界为O(nlogn),这里介绍一种非比较排序算法:计数排序,其时间复杂度为O(n)。 计数排序原理 假定有三个数组,A,B,C,A为待排序数组,B为输出数组,C为临时数…
最小/大堆添加元素算法
// BinaryHeapAdd.c // 备注: 本程序显示结果应以二叉树形式而非数组形式排列 // FLAG = 0 最小堆 // FLAG = 1 最大堆 #define FLAG 0 #include <s…