算法_数据结构_设计模式
文章平均质量分 83
关注工程实践算法,而非数学理论算法
zollty
这个作者很懒,什么都没留下…
展开
-
多线程是否能加快处理速度
问:多线程是不是能加快处理速度?解析:在使用多线程时,一定要知道一个道理:处理速度的最终决定因素是CPU、内存等,在单CPU(无论多少核)上,分配CPU资源的单位是“进程”而不是“线程”。我们可以做一个简单的试验:假设我要拷贝100万条数据,单CPU电脑,用一个进程,在单线程的情况下,CPU占用率为5%,耗时1000秒。那么当在这个进程下,开辟10个线程同时去运行,原创 2016-12-30 16:33:13 · 23968 阅读 · 7 评论 -
接口的作用和使用原则
一、接口的作用:1、作为一个客观的规范,是一类事物所具有的属性的总结,相当于父类。根据接口,就知道一个实例所具有的方法,是一种声明。简而言之,接口的作用是“概括和声明”。如此可知,1)接口下面可能会有多种具体的实现。2)调用接口时,会非常方便。举例:我不知道某人叫什么 我只知道他属于人类 那么我一定知道他有吃饭的行为,我就可以扔给他一个骨头具体代码:原创 2016-12-27 18:35:53 · 1796 阅读 · 0 评论 -
程序设计模式-“OPGA设计模式”简介
程序设计模式-“OPGA设计模式”简介即(One Parameter Go Anywhere)“一参走天下”这是个新想法,看起来很不错。能够解决我们在编程时,要考虑太多的参数传递和回传的问题。如果能实现一种模式,让我们无须传递这么多参数,那是多么的好啊! 先看看,我们编程中经常会遇到的问题: 1、要求Service类回传多个信息。可行原创 2015-09-13 21:20:45 · 670 阅读 · 0 评论 -
关于循环最后一步特殊处理的算法
问题描述: 直接看下面的代码:while ((p =in.readLine(buf, 0, len)) != -1) { isBreakStr = new String(buf, 0, p); if ( isBreakStr.indexof(breakStr)!=-1 ){ // 遇到分隔符则终止读取原创 2013-10-24 19:11:04 · 1813 阅读 · 0 评论 -
使用多线程的利弊
转载自Intel:http://software.intel.com/zh-cn/blogs/2013/04/09/?utm_campaign=CSDN&utm_source=intel.csdn.net&utm_medium=Link&utm_content=%20Multicore%20-duoxiancheng1. Amdahl定律 一个很简单的量化公式,用来计算一个转载 2013-09-04 09:18:10 · 1189 阅读 · 0 评论 -
随机洗牌算法
随机洗牌算法,或者叫“排列组合算法”,或者叫“生成不重复的随机数”,是一种很常用的算法。先看看肖舸老师的文章:《随机洗牌算法复杂度的比较实例》http://tonyxiaohome.blog.51cto.com/blog/925273/313362其实我最初想到的也是那3个方法:1判断生成的随机数有没有重复,2.生成一张布尔表,3.双随机数。下面给出我的算法:#includ原创 2011-11-18 17:31:28 · 1638 阅读 · 0 评论 -
生成等宽字距字符串的算法
我们知道,在很多字体下面,每个英文字母的宽度是不一样的,就拿W和I来讲,W的宽度要大于I的宽度(字体的宽度),所以有时候我们会不太喜欢这样的定义。以下我以Windows下默认的文件名称为例,我对比发现,等宽字符可以分成下面5组:public static final char [] charsA = new char[]{'A','B','C','K','X'};public原创 2013-05-05 01:59:12 · 1796 阅读 · 0 评论 -
判断一个数是否是整数
1. 判断一个数是否是“整型”,调用系统函数#include #include using namespace std;int main(){ double i=3; cout << typeid(i).name() << endl; cout << typeid(3.0000).name() << endl; system("pause") ;原创 2011-11-15 18:30:50 · 4599 阅读 · 0 评论 -
由排序算法引出的数据结构
由排序算法引出的数据结构作者:zollty 本文较为深入地研究了各类基本的排序算法,并由此引伸到对于数据结构的认识。 怎样选择算法?哪种排序算法最好?要回答这些问题首先要建立在数据特征和对数据的操作要求上,根据不同的数据特征和操作要求选择合适的数据存储结构。 数据存储结构分类如下:(1)顺序存储(2)链表结构(3)索引(4)散列表原创 2011-09-29 18:10:33 · 948 阅读 · 0 评论 -
下标处理问题
下标处理问题 主要是针对于插入排序算法写的程序,其他情况可以借鉴这些思路。 数学上或者通常意义上,下标都是从1开始的,但是在多数编程语言里面数组下标都是从0开始的,这就很恼火了,简单一个下标处理起来却异常麻烦!请看例如:(1)典型的数组下标越界问题假设有个数组:a[0] a[1],我们要用插入法排序,把a[1]插入到a[0]前面,插入法是这样写的while( a[j原创 2011-09-30 17:28:40 · 993 阅读 · 0 评论 -
Java设计模式
单例模式的使用场景:1、缓存资源,控制资源的并发读、写。(资源即类的属性)例如:有一把锁,需要两把钥匙才能打开。在更换钥匙期间,是不允许开锁的。而且,两把钥匙必须更换完才允许开锁,即,只更换完一把时,是不允许开锁的。假设一个线程修改完了一把钥匙,正准备修改第二把钥匙,而此时另外一个线程又试图开锁。有两种做法:1)此时不允许开锁,必须等第二把钥匙更改完成后原创 2016-12-30 16:31:33 · 389 阅读 · 0 评论