摘要:希尔排序(shellsort)又叫增量递减(diminishing increment)排序,是由D.L. Shell发明的,这个算法是通过一个逐渐减小的增量使一个数组逐渐趋近于有序从而达到排序的目的。假设有一个数组int data[16] = {...}。 首先将这个增量设为16 / 2 = 8,...
阅读全文
摘要:题:对于有n个元素的数组 int a[n]={....};写一个高效算法将数组内容循环左移m位比如: int a[6] ={1,2,3,4,5,6} ,循环左移3位得到结果{456123},要求:1不允许另外申请数组空间,但可以申请少许变量2不允许采用每次左移代码:#include void Rev...
阅读全文
摘要:什么是全排列:全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个。现以{1, 2, 3, 4, 5}为例说明如何编写全排列的递归算法。算法具体说明,先用示例说明下(比较具体):1、首先看最后两个数4, 5。 它们的全排列为4 5和5 4, 即以4开头的5的全排列和以5开头的4...
阅读全文
摘要:1、临界区对象临界区是保证在某一个时间只有一个线程可以访问数据的方法。使用它的过程中,需要给各个线程提供一个共享的临界区对象,无论哪个线程占有临界区对象,都可以访问受到保护的数据,这时候其它的线程需要等待,直到该线程释放临界区对象为止,临界区被释放后,另外的线程可以强占这个临界区,以便访问共享的数据...
阅读全文
摘要:线程同步的方法主要有以下五种:1、临界区:通过临界区实现多个线程对同一公共资源或一段代码的串行访问,速度快,适合控制数据的访问。2、互斥量:通过协调线程共同对一个共享资源的单独访问而设计。3、信号量:可以控制有限用户对同一资源的的访问而设计;4、事件:通过通知线程的有一些事件已经发生,从而可以启动后...
阅读全文
摘要:1.const//file1.cppint a;//file2.cppextern int a;a++//上述是正确的,但是下面就会出错//file3.cppconst int a;//file4.cppextern int a;a++const会把变量变为局部变量,只允许本文件访问,如果想用con...
阅读全文
摘要:参考资料:1. Python装饰器学习http://blog.csdn.net/thy38/article/details/44714212. Python装饰器与面向切面编程http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html3. ...
阅读全文