自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (2)
  • 收藏
  • 关注

原创 快速排序

像合并排序一样,快速排序也是基于分治模式。int partition(int array_data[], int start_index, int end_index) {     int data = array_data[end_index];     int i = start_index;     for(int j = start_index; j     {         if(array_data[j]         {             if(i != j)

2010-06-28 10:47:00 472

原创 堆排序

老实讲,这么多年,在工作中,从来没有用过堆排序,也没有借鉴过堆排序思想。主要原因是对堆排序早已经忘得一干二净。堆排序中,首先需要理解这里所说的堆,也就是定义。不是任意一堆数任意堆起来就是堆,而是这一堆数必须满足:n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质): (1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ n) 满足性质1的称为小根堆,满足性质2的称为大根堆。可以将堆看做是完全二叉树。堆排序的第一步是建立

2010-06-22 15:28:00 503

原创 冒泡排序

冒泡排序是一种比较简单直观的排序方法。代码如下:void bubble_sort(int array_data[], int array_length) {     for(int i = 0; i         for(int j = array_length - 1; j>i; j--)         {             if(array_data[j]             {                 int data = array_data[j];    

2010-06-10 15:11:00 483

原创 合并排序

合并排序的主要功能是将两个已经排好序的数组合并成一个有序的大数组。合并的算法思想为:每次去两个数组中最小的(或者最大的)加入到新数组中。合并排序算法的C++代码:void merge_sort(int array_data[], int array_start_index, int array_end_index) {     if(p     {         int q = (p + r) / 2;         merge_sort(arrayData, p, q);        

2010-06-09 15:40:00 455

原创 插入排序

写了几十年的程序,大多数都是有关逻辑与事务方面的,涉及算法的比较少,因此算法方面感到很是生疏了。如果继续写逻辑事务型程序,可能自己随时会厌倦的,并且能力也很难再提高。所以决定再学一次算法,以后尽量写一些更加关键的代码,尽量减少简单代码的重复编写。《算法导论》是一本不错的书,涉及的算法比较全面。这两天学习了插入排序算法。插入排序算法的实质用形式化的语言描述就是:将数组的第N+1个A[N]元素插入到A[0]到A[N-1]之间,其中A[0]到A[N]已经是有序的。从1到M(M为数组的长度)重复以上插入过程,就可以

2010-06-08 15:40:00 500

原创 OpenMP编程学习笔记九

OpenMP的Execution Model主要是几个线程通过同时运行,从而完成一个任务。与单核上的多线程并发执行是不同的,因为并发执行实际上是线程在不同的时间段占有CPU。而OpenMP的线程,是在各自的CPU上执行,不存在各个线程在同一个CPU上的调度。虽然有多个CPU,但是内存空间是共享的。并发线程间经常有临界变量,所以就不难理解OpenMP线程之间共享变量了。例如一个迭代求和,共享变量就是sum变量。并发线程中的每个线程都有私有的线程空间,同样,OpenMP线程也有自己的线程私有空间。Flush D

2010-06-03 11:29:00 789

原创 OpenMP编程学习笔记八

现在对OpenMP有了一定的感官认识。今天,又看了一下OpenMP的Execution Model,对Execution Model 有了更深入的认识。我的工作站是4核的,如果不运行OpenMP程序,只会有一个核运行程序,在Windows Task Manager中CPU的使用百分比应该会增加25%左右。测试代码:void OneCPU(){    long i = 0;    while(1)    {        i++;    }}运行后,发现CPU使用情况果然增加了25%左右。测试代码:void

2010-06-01 16:30:00 730

TCC890x WinCE6 高清播放器

这时我在业余时间用贴图完成的TCC890x WinCE下的高清播放器。所有按钮,进度显示等都是通过贴图实现。

2011-07-28

C++语言引入了并发机制,可以很容易的编写并发多线程程序了。

以前,编写C++并发的多线程程序时,总是要借助操作系统提供的API。因此,C++的多线程程序移植比较麻烦。现在,最新的C++语言标准引入了多线程,解决了不同平台之间需要修改才可以运行的移植问题。

2010-06-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除