最新消息:聚合-分享-->bidutools.com是专注互联网技术的个人博客,大部分来自互联网,以作为笔记查阅。

标签:算法

互联网界

归并排序的实现

bidu 4年前 (2015-01-07) 337浏览

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这...

快速排序-快速搞定
互联网界

快速排序-快速搞定

bidu 4年前 (2015-01-07) 313浏览

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采 用,再加上快速排序思想—-分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考 试如软考,考...

互联网界

堆与堆排序

bidu 4年前 (2015-01-07) 286浏览

堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。 二叉堆的定义 二叉堆是完全二叉树或者是近似完全二叉树。 二叉堆满足二个特性: 1.父结点的键值总是大于或等于(小于或...

互联网界

排序算法——桶排序

bidu 4年前 (2014-12-15) 306浏览

桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将阵列分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递回方式继续 使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的阵列内的数值是...

互联网界

数组中求第K大数

bidu 4年前 (2014-12-15) 350浏览

问题:有一个大小为n的数组A[0,1,2,…,n-1],求其中第k大的数。 该问题是一个经典的问题,在《算法导论》中被作为单独的一节提出,而且其解决方法很好的利用了分治的思想,将时间复杂度控制在了O(n),这多少出乎我们的意料,此处暂且不表。 该问题...

互联网界

几个算法~~

bidu 4年前 (2014-12-15) 293浏览

1、从N个数中选出n个最大的数,写出思路和实现。 《编程之美》上有讲这个算法的设计与思路。 我这里简单写几个思路: (a)如果N能在主存中一次读入,则先进行快排,然后再取前n个数。算法复杂度:O(NlogN). (b)如果N非常大,假设不能一次读入内...

互联网界

查找数组中和最大的子序列

bidu 4年前 (2014-12-15) 347浏览

关于如何查找数组中和最大的子序列 问题:给定一个数组,如{-1,3,6,-9,2,-5,-1,9,3,-3},求该数组中的和最大的子序列。 有一整型数组,其中元素可正、可负、也可为零。要求在该数组中找到一个子序列,其和在所有子序列中最大,并将该...

编程开发

排序算法——冒泡排序

bidu 4年前 (2014-11-19) 310浏览

思想 同之前介绍的两种排序方式一样,冒泡排序也是最简单最基本的排序方法之一。冒泡排序的思想很简单,就是以此比较相邻的元素大小,将小的前移,大的后移,就像水中的气泡一样,最小的元素经过几次移动,会最终浮到水面上。 举例分析说明一下,如下数据: 2 7 ...

编程开发

平衡查找树之红黑树

bidu 4年前 (2014-11-17) 352浏览

浅谈算法和数据结构: 九 平衡查找树之红黑树 前面一篇文章介绍了2-3查找树, 可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,最坏情况下即所有的子节点都是2-node,树的高度为lgN,从而保证了最坏情况下的 时间复杂度。但是2...

编程开发

C语言实现 atoi strcat

bidu 4年前 (2014-11-07) 442浏览

atoi是把字符串转换成长整型数的一种函数 C语言库函数名 atoi 原型: int atoi(const char *nptr); UNICODE _wtoi() 参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后...