随笔分类 -  算法&面向对象

算法回顾(二):快速排序
摘要:在算法回顾(一)中,介绍了冒泡排序,它虽然很容易理解,但是效率却着实的低(O(N^2)), 现在让我们来回顾一下另外一种排序算法,它的效率可就高了许多,大概是O(N*logN),这就是快速排序。快速排序的中心思想就是:先从待排序的序列中,选择处于中间位置的关键码作为pivot,然后将剩下的元素进行一个筛选,将码值小于pivot的放到左边,码值大的放到右边。然后,分别对pivot左右两边的序列进行一次相同的筛选操作,依次类推,直到最后分的不能再分为止。这个时候整个序列就排序完成了。说起来简单,做起来难。真正把上面的思想写成代码还是需要下一番功夫的。一般这种情况,最佳实践就是先写出算法的伪代码,然 阅读全文

posted @ 2013-08-06 21:45 隔热 阅读(332) 评论(0) 推荐(0)

算法回顾(一):冒泡排序
摘要:排序问题是计算机科学中比较基础的一个问题,目的就是将一组无序的数据整理成有序的状态。今天要回顾的就是在计算机算法课上可以说必讲的一个排序算法----冒泡排序。冒泡排序包括一个简单的双重循环。第一次的内部for循环从记录数组的底部比较到顶部,比较相邻的关键码。如果低序号的关键码值比高序号的关键码值大,则将二者交换顺序。一旦遇到一个最小关键码值,这个过程将使它像一个“气泡”一样被推到数组的顶部。第二次在重复调用上面的过程,但是,既然知道最小元素第一次就被排到了数组的最上面,因此就不没有必要再比较最上面的两个元素了。代码实现如下: 1 void bubbleSort(int array[], int 阅读全文

posted @ 2013-08-04 23:10 隔热 阅读(209) 评论(0) 推荐(0)

ANSI-C 中使用引用计数(译)
摘要:ANSI-C中使用引用计数(译)原作者:Jean-David Gadina原文地址:Reference counting in ANSI-C关于:内存管理在编写c程序时是一件困难的事情,某些高等级的编程语言提供了不同的内存管理的方法。主要有垃圾回收(garbage collection) 和 引用计数(reference counting)。本文将教给你如何在c语言中实现引用计数的内存管理系统。从个人角度讲,本人(原文章作者)作为一名使用c语言和Objective-c语言的程序员,更加偏爱引用计数的方法。因为这种方法隐含着对象所有权的概念。(It implies the notion of o 阅读全文

posted @ 2013-07-16 16:31 隔热 阅读(1053) 评论(0) 推荐(0)