排序:
默认
按更新时间
按访问量

八大排序之快速排序(与优化)

快速排序,是八大排序中效率较高的一种。对于处理乱序的数据,有着显著的效果。它的算法思想主要是用到了分治算法的思想。在对数据的处理上,基本都处于nlog(n)的时间复杂度上。最差就是在处理有序的数组的时候,由于结构使然,它有可能会变成一个单分支树,时间复杂度迅速上升到0(n^2)。  快速排序的基...

2018-02-03 22:22:58

阅读数:36

评论数:0

八大排序之归并排序

归并排序,是一种稳定型的排序算法。它主要用到了分治算法的思想:将大规模的排序分隔成为一个个易解决的子问题。降低问题得的规模,是问题处理起来相对来说较为简单。 一般结构的归并排序,是一分为二。采用树状结构有,逐层二分,知道分到一个数(不用排序,本身是有序的)之后归并。将两个升序数组合并成一个升序数...

2018-02-02 23:40:19

阅读数:15

评论数:0

位运算的一些运用的技巧。

位运算是直接可以操纵数据的二进制,在运算方面大大减少了内存的负担,使程序运行速度大大提升。所以巧妙的运用位运算可以使程序的运行效率提升不止一个档次。 常见的位运算有: 1、>>右移运算符。将数的二进制形式下最后一位去除,剩下的一次右移。如果是正数,最高位就补0,如果是负数,最高...

2017-10-24 15:18:41

阅读数:82

评论数:0

剑指offer中的快排

一、快速排序的思想。 每一次的快排,都是选定一个坐标,把一个数组分隔成两部分。一边是比坐标的数大的数,一边是比坐标的数小的数。 之后把分隔的两个部分在各自选取一个坐标,在分别进行分隔。直到分隔的区间只剩一个数为止。 习惯上把标志位的数放在数组的最后一位上,这样方便进行...

2017-10-12 21:54:44

阅读数:168

评论数:0

学习设计模式心得与代码(三)

(六)桥接模式: 优点:1、使得抽象和实现可以独立扩展。 2、降低抽象和实现的耦合度。 includeusing namespace std; class Abstraction{//抽象出来实现的方法 public: virtual void opera...

2017-05-03 22:12:55

阅读数:64

评论数:0

学习设计模式基础的心得与代码(二)

(四)适配器模式。 主要是为了统一接口,处理接口不匹配的问题。使函数在调用时简单,将某个类的接口转换成另一个客户期待的接口,实现了接口不匹配的类间通信,实现了软件的复用。 (1)对象适配: 类图:                                             ...

2017-04-23 19:50:03

阅读数:78

评论数:0

学习设计模式基础的心得与代码(一)

由于只学了几个简单的设计模式,就想分享一下感受。主要是:单例、抽象工厂、代理模式等几个简单的模式。 (一)单例模式: 属于创建对象模式的一种,及最整个程序,智能将类进行一次实例化。用到了静态函数与静态变量的特性,较为简单易懂。 代码:     class My{private: ...

2017-04-16 20:30:12

阅读数:75

评论数:0

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