罗朝辉(飘飘白云)

关注嵌入式操作系统,移动平台,图形开发。-->加微博 ^_^

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  85 随笔 :: 0 文章 :: 169 评论 :: 0 Trackbacks

#

     摘要: 排序是数据处理中经常使用的一种重要运算,在计算机及其应用系统中,花费在排序上的时间在系统运行时间中占有很大比重,其重要性无需多言。下文将介绍常用的如下排序方法,对它们进行简单的分析和比较,并提供 C/C++ 语言实现。

所谓排序,就是要将一堆记录,使之按关键字递增(或递减)次序排列起来。根据排序所采用的策略,可以分为如上五种:

1、插入排序(直接插入排序、希尔排序);
2、交换排序(冒泡排序、快速排序);
3、选择排序(直接选择排序、堆排序);
4、归并排序;
5、桶排序(桶排序,基数排序);

其中插入排序、交换排序、选择排序、选择排序、归并排序都是基于关键字比较的排序,比较排序的平均时间复杂度好不过 O(nlogn)。
而桶排序是基于映射的排序,其平均时间复杂度可达到 O(n),但桶排序需要额外的空间来存储经过映射的记录。

通常在待排序记录较多的时候,基于映射的排序 O(n) 比基于比较的排序 O(nlogn) 的效率要高得多,这很好理解:用空间换时间。(查找算法其实也是如  阅读全文
posted @ 2011-03-03 22:07 罗朝辉 阅读(1908) | 评论 (0)编辑 收藏

     摘要: Objective C 与 C++ 两者最大的相同便是: 都是从 C 演化而来的面向对象语言, 两者都兼容标准 C 语言; 两者最大的不同便是: Objective C 提供了运行期动态绑定机制, 而 C++ 是编译时静态绑定, 并通过嵌入类(多重继承)和虚函数(虚表)来模拟实现. Objective C 在语言层次上支持动态消息转发, 其函数调用语法为 [object function], 而且C++ 为 object->function(). 两者的语义也有不同, 在 Objective C 里是说发送消息到一个对象上, 至于这个对象能不能处理消息(也就是说实现了这个函数与否)以及是处理还是转发消息都不会 crash, 而在 C++ 里是说对象进行了某个操作,如果对象没有这个操作的话,要么编译会报错(静态绑定),要么程序会 crash 掉的(动态绑定).
  阅读全文
posted @ 2010-12-26 12:30 罗朝辉 阅读(10370) | 评论 (7)编辑 收藏

     摘要: 在上一篇文章《Android 上实现水波特效》中对水波波幅的计算是针对每一个像素的,效率比较低,尤其是在手机上运行,相当缓慢。我们可以利用线性插值进行优化,这样可以将计算减少一半(MeshSize 为 2)或减少四分之三(MeshSize 为 4),效率得以大大提升,即使是在手机上也能较为流畅地运行。
  阅读全文
posted @ 2010-09-28 11:49 罗朝辉 阅读(1359) | 评论 (0)编辑 收藏

     摘要: 本文中的水波特效算法部分整理自 GameRes 上的资料,原作者 Imagic。我只是在学习 Android 的过程中,想到这个特效,然后就在Android 上实现出来,并在源算法的基础上添加了雨滴滴落特效,以及划过水面时的涟漪特效。 该程序在模拟器和真机上运行速度都较慢,需要进一步优化或使用 JNI 实现,如果你想到好的优化算法,请联系我:kesalin@gmail.com。  阅读全文
posted @ 2010-09-01 13:19 罗朝辉 阅读(3618) | 评论 (0)编辑 收藏

     摘要: 数学函数备份。。。  阅读全文
posted @ 2010-06-04 18:38 罗朝辉 阅读(711) | 评论 (0)编辑 收藏

     摘要: OpenGL 3.0规范发布还不到一年,3.1升级版也才四个来月,Khronos Group组织今天又对其进行了第二次升级,放出了新的3.2版本,而NVIDIA也再次紧随而至,第一家发布了相关驱动程序。OpenGL 3.2在性能增强、画质提升、几何处理加速、Direct3D程序导入简化等方面加入了大量新特性,并且和Khronos Group组织的其它标准进行了深入整合,包括用于并行计算的OpenCL、面向移动设备3D图形的OpenGL ES、创建3D web的WebGL等等。  阅读全文
posted @ 2009-08-05 10:34 罗朝辉 阅读(658) | 评论 (0)编辑 收藏

     摘要: Symbian开发入门教程: 环境配置,项目设置,图片资源,中文字符串处理等等  阅读全文
posted @ 2009-07-09 11:31 罗朝辉 阅读(13063) | 评论 (2)编辑 收藏

     摘要: 通过对这个 dll 进行定制(修改图标和插入菜单,很简单的替换工作),你就很容易地在新工程中使用定制的任务栏托盘,这样就省去了每写一个桌面程序就要整些桌面托盘的代码。而且这个dll所创建的任务栏托盘与主窗口是非阻塞模式的。

源文件下载: 点击这里
google 项目地址: http://code.google.com/p/luotasktray/

效果如图:  阅读全文
posted @ 2009-06-08 20:47 罗朝辉 阅读(1901) | 评论 (4)编辑 收藏

     摘要: 这一系列文章介绍Microsoft Visual Studio 2010 中支持的C++ 0x特性,目前有三部分。
Part 1 :介绍了Lambdas, 赋予新意义的auto,以及 static_assert;
Part 2( 一 , 二 , 三 ):介绍了右值引用(Rvalue References);
Part 3:介绍了表达式类型(decltype)

VC10中的C++0x特性 Part 1,2,3 译文打包下载(doc 和 pdf 格式): 点此下载

本文是Part 3。  阅读全文
posted @ 2009-06-07 09:28 罗朝辉 阅读(2388) | 评论 (4)编辑 收藏

     摘要: 简介

这一系列文章介绍Microsoft Visual Studio 2010 中支持的C++ 0x特性,目前有三部分。
Part 1:介绍了Lambdas, 赋予新意义的auto,以及 static_assert;
Part 2 (一, 二, 三):介绍了右值引用(Rvalue References);
Part 3:介绍了表达式类型(decltype)。

本文为Part 2 的第三页。  阅读全文
posted @ 2009-06-05 15:09 罗朝辉 阅读(2851) | 评论 (0)编辑 收藏

列出全部内容
共9页: 1 2 3 4 5 6 7 8 9