2013年8月2日

算法导论学习笔记(五):快速排序

摘要: 2013年8月2日 15:41 快速排序是一种最坏情况运行时间为O(n*n),虽然这个最坏情况运行时间比较差,但快速排序通常都是用于排序的最 佳的实用选择,这是因为其平均性能相当好:期望的运行时间为O(nlgn),且O(nlgn)记号中隐含的常数因子很小。另 外,它还能够进行就地排序。 快速排序和合并排序一样,采用的都是分治思想。快排中利用该思想解决步骤为: 1、先从数组中取出一个数作为基数,基数的选择对排序效率的影响很大 2、分区,将比这个基数小的数全部放到它的左边,比基数大的数全部放到其右边 3、对左右两个区间重复第二步,直到每个区间只有一个数 下面结合代码来进一步理解快速排序。算法... 阅读全文

posted @ 2013-08-02 18:28 零风腾飞 阅读(262) 评论(0) 推荐(0) 编辑

算法导论学习笔记(四):求X的N次方的二分实现

摘要: 今天在看到网易里的算法导论的公开课,听到老外讲分治法时提到了下算一个数的N次方的可以通过二分思想来实 现,于是便想自己写个代码来实现它。虽然很简单,还是想写在博客中。一是可以加深自己的印象,以后遇到这类问 题时可以马上想到用二分来解决;二是可以方便以后的复习,再次用到的时候可以直接来这找模板。 [cpp]view plaincopyprint? #include usin... 阅读全文

posted @ 2013-08-02 18:26 零风腾飞 阅读(470) 评论(0) 推荐(0) 编辑

算法导论学习笔记(三):堆排序

摘要: 堆排序是一种利用堆的性质进行的排序算法。所以学习堆排序之前先来简单介绍下堆。堆堆数据结构是一种数组对象,如图一所示,它可以被视为一颗完全二叉树。 图一树中的每个结点与数组中存放该结点值的那个元素对应。树的每一层都是填满的,最后一层可能除外。如果树的结点和数组的下标都从0开始,那么给定了某个结点的下标i,其父节点PARENT(i)、左儿子LEFT(i)和右儿子RIGHT(i)的下标可以简... 阅读全文

posted @ 2013-08-02 18:25 零风腾飞 阅读(299) 评论(0) 推荐(0) 编辑

算法导论学习笔记(一):插入排序

摘要: 插入排序: 插入排序的大概步骤是从第二个元素开始遍历,当遍历到第N个元素时,前面N - 1个元素都已经排好序了,然后查找 前面排好序的N - 1个元素,将第N个元素插入到适当的位置。也就是说插入排序实现有两个关键点:如何保证遍历到 当前元素时,前面的元素是已经排好序的、怎么将元素插入到适当的位置。下面就以将元素升序排序来说明。 首先,先来解决第一个问题,即保证遍历到当前元素时,前面的... 阅读全文

posted @ 2013-08-02 18:24 零风腾飞 阅读(254) 评论(0) 推荐(0) 编辑

冒泡排序

摘要: #include #include void bubble_sort(int a[], int size);void print_array(int a[], int size);int main(){int size;int i;int *a;printf("input the size of array: size = \n");scanf("%d",&size);a = (int *)mal... 阅读全文

posted @ 2013-08-02 18:23 零风腾飞 阅读(147) 评论(0) 推荐(0) 编辑

书单

摘要: C语言升级必读 2013-06-06 13:39:01添加1.C程序设计语言 作者: (美)Brian W. Kernighan/(美)Dennis M. Ritchie 出版社: 机械工业出版社> 修改或移动> 删除 加入购书单2013-06-06 13:39:24添加2.C和指针 作者: Kenneth A.Reek 出版... 阅读全文

posted @ 2013-08-02 18:18 零风腾飞 阅读(175) 评论(0) 推荐(0) 编辑

23设计模式彩图

摘要: 阅读全文

posted @ 2013-08-02 17:59 零风腾飞 阅读(205) 评论(0) 推荐(0) 编辑

常用设计模式

摘要: Factory模式//Product.h#ifndef _PRODUCT_H_#define _PRODUCT_H_class Product{public: virtual ~Product() = 0;protected: Product();};class ConcreteProduct:public Product{public:... 阅读全文

posted @ 2013-08-02 17:58 零风腾飞 阅读(162) 评论(0) 推荐(0) 编辑

设计模式(一)工厂模式Factory(创建型)

摘要: 设计模式一 工厂模式Factory 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 ... 阅读全文

posted @ 2013-08-02 17:57 零风腾飞 阅读(204) 评论(0) 推荐(0) 编辑

C语言文件读写操作总结

摘要: C语言文件操作 一、标准文件的读写 1.文件的打开 fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文件的存取操作了。当使用打开函数时,必须给出文件名、文件操作方式(读、写或读写),如果该文件名不存在,就意味着建立(只对写文件而言,对读文件则出错),并将文件指针指向文件开头。若已有... 阅读全文

posted @ 2013-08-02 17:55 零风腾飞 阅读(4920) 评论(0) 推荐(0) 编辑

导航