算法
文章平均质量分 62
DIY-GEEKER
若有恒,何必三更眠五更起;最无益,莫过一日曝十日寒
展开
-
白话经典算法系列之六 快速排序 快速搞定
http://blog.csdn.net/morewindows/article/details/6684558快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的转载 2014-05-17 18:46:14 · 566 阅读 · 0 评论 -
白话经典算法系列之五 归并排序的实现
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plaincopy转载 2014-05-17 18:36:23 · 656 阅读 · 0 评论 -
决策树算法
1.1、什么是决策树 咱们直接切入正题。所谓决策树,顾名思义,是一种树,一种依托于策略抉择而建立起来的树。 机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决转载 2014-05-17 18:54:00 · 585 阅读 · 0 评论 -
八大排序算法
八大排序算法转载 2014-05-17 19:05:27 · 518 阅读 · 0 评论 -
白话经典算法系列之七 堆与堆排序
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总转载 2014-05-17 11:17:19 · 895 阅读 · 1 评论 -
桶式排序
转自http://blog.csdn.net/lxgwm2008/article/details/8736157桶式排序是一种常见的排序方法,其定义如下:如果我们有N个整数,范围从1到M(或从0到M-1),我们可以利用这个信息得到一种快速的排序,叫做桶式排序(bucket sort)。我们留置一个数组,称之为Count,大小为M,并初始化为零。于是,Count有M个单元(或桶)转载 2014-05-17 19:01:02 · 706 阅读 · 0 评论 -
外部排序
一般而言,讨论的排序,都是将数据读入内存之后进行的排序。不管是快速排序、堆排序、归并排序还是插入排序,耳熟能详的冒泡排序。当然,在内部排序中,效果最好的当属快速排序,虽然它在输入大致有序的情况下会有O(n*n)这样比较差的时间复杂度。稳定的排序:插入排序、归并排序;不稳定的排序:快速排序、Shell排序、堆排序。现在讨论外部排序,所谓外部排序,就是待排序的数据不能够一次性放入主存,转载 2014-05-17 19:17:19 · 745 阅读 · 1 评论