
--------【经典算法】
文章平均质量分 76
liuyanfeier
acmer
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二分查找
本文写了二分查找有序数组以及二分查找循环有序数组的算法。循环有序数组是,一个有序数组从中间截断了然后拼在一起。大致思路:先确定单调区间,然后根据判断指定点是否在单调区间内,剪掉另外一半区域~~如此循环。直到循环跳出,或者找到指定值对应的位置为止结束。#include #include #include using namespace std;//二分查找原创 2016-05-02 14:02:23 · 476 阅读 · 0 评论 -
n个数里面找出最大的m个数字(快排思想)
分析:这个问题,我之前遇到的时候想到的解决方案是,最小堆解决方法。建立个数为m的最小堆,然后遍历n维护这个最小堆就可以了,算法的时间复杂度是n*log(m)。还是比较高效的算法的。今天我又发现了一种解决方法,那就是STL里面的一种算法,STL里面的nth_element就是这样的一种算法。利用类似于快速排序的过程,找到前面的m个最大的数字。不多说了,看代码吧。通过代码可以看原创 2016-08-31 10:05:13 · 9819 阅读 · 0 评论 -
程序员面试金典,牛课网在线编程题目答案(1)
程序员面试金典,牛课网在线编程题目答案(1)题目地址点击打开链接//请实现一个算法,确定一个字符串的所有字符是否全都不同。//这里我们要求不允许使用额外的存储结构。bool checkDifferent(string iniString) { // write code here int len = iniString.length(); int v原创 2016-06-20 19:01:25 · 3157 阅读 · 1 评论 -
各种排序算法的分析与实现
由于最近在找工作的过程中遇见了很多考察各种排序算法的问题,而我对此却不是非常熟悉,所以花了一些时间做了一个非常简单的总结。一.直接插入排序(straight insertion sort)直接插入排序算法是稳定的排序算法,时间复杂度为O(n^2)。思想为:假设待排序的数组存放在a[1...n]中,初始时,a[1]自成一个有序区,无序区为a[2...n]。从i=2到i=n原创 2016-04-11 13:42:16 · 961 阅读 · 0 评论