
c++
不折腾就闹心
这个作者很懒,什么都没留下…
展开
-
c++ STL库
#include<vector>详细的函数实现功能:其中vector<int> c. 不能直接定义为NULL 二维vector的初始化vector<vector <int> > ivec(m ,vector<int>(n,0)); //m*n的二维vector,所有元素初始化为0vector<vector<int>> ret(m,vector<int>(n));//m*n的二维vector初始原创 2017-08-27 19:50:05 · 604 阅读 · 0 评论 -
寻找k个数组的最小区间
有k个有序的数组,请找到一个最小的数字范围。使得这k个有序数组中,每个数组都至少有一个数字在该范围中。 例如:1: 4, 10, 15, 24, 262: 0, 9, 12, 203: 5, 18, 22, 30所得最小范围为[20,24],其中,20在2中,22在3中,24在1中。通过归并排序的思想,确保每次都是k个来自不同的数组的元素进行比较,得到最大值、最小值。就可以得到一个范围,包含了所有原创 2017-09-17 15:31:01 · 1811 阅读 · 0 评论 -
剑指offer1 二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 /* 思路 * 矩阵是有序的,从左下角来看,向上数字递减,向右数字递增, * 因此从左下角开始查找,当要查找数字比左下角数字大时。右移 * 要查找数字比左下角数字小时,上移 *//*这个代码写的是从右上角开始查找*/原创 2017-09-17 09:40:19 · 377 阅读 · 0 评论 -
交换排序—快速排序(Quick Sort)
基本思想:1)选择一个基准元素,通常选择第一个元素或者最后一个元素,2)通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的 元素值比基准值大。3)此时基准元素在其排好序后的正确位置4)然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。快速排序是通常被认为在同数量级(O(nlog2n))的排序方法中平均性能最好的。但若初始序列按关键码有原创 2017-08-30 13:46:42 · 684 阅读 · 1 评论 -
冒泡排序c++
交换排序—冒泡排序(Bubble Sort) 基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。算法的实现:#include<iostream>#include<string>using namespace std;void print原创 2017-08-30 11:12:41 · 673 阅读 · 1 评论 -
简单选择排序
选择排序—简单选择排序(Simple Selection Sort) 基本思想:在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。简单选择排序的示例:操作方法:第一趟,从n 个记录中找出关键码最小的记录与第一个记录交换;第二趟,从第二个记原创 2017-08-30 10:01:47 · 648 阅读 · 2 评论 -
C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plain copyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。[c-转载 2017-09-14 20:57:35 · 469 阅读 · 0 评论 -
希尔排序c++
插入排序—希尔排序(Shell`s Sort) 希尔排序是1959 年由D.L.Shell 提出来的,相对直接排序有较大的改进。希尔排序又叫缩小增量排序基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。操作方法:选择一个增量序列t1,t2,…,tk,其中ti>tj,tk=1; 按增量序列个数k,对序列进行原创 2017-08-29 14:39:42 · 1238 阅读 · 0 评论 -
直接插入排序c++
1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 要点:设立哨兵,作为临时存储和判断数组边界之用。如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元原创 2017-08-29 14:02:57 · 566 阅读 · 0 评论 -
Fibonacci数
南阳OJ-No.13时间限制:3000ms,空间限制:65535KB描述无穷数列1,1,2,3,5,8,13,21,34,55…称为Fibonacci数列,它可以递归地定义为 F(n)=1 ………..(n=1或n=2) F(n)=F(n-1)+F(n-2)…..(n>2) 现要你来求第n个斐波纳奇数。(第1个、第二个都为1)输入第一行是一个整数m(m<5)表示共有m组测试数据 每次测原创 2017-08-29 10:55:46 · 806 阅读 · 0 评论 -
什么是多态?为什么用多态?有什么好处?多态在什么地方用?
什么是多态?概念:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说:就是用基类的引用指向子类的对象。 为什么要用多态呢?原因:我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态除了代码的复用性外,还可以解决项目中紧偶合的问题,提高程序的可扩展性.。耦合度讲的是模块模块之间,转载 2017-08-28 10:56:03 · 976 阅读 · 0 评论 -
杀死“比尔”
所有人有一个初始的生命值,一个警官要杀一个人则该人的生命值减p,其他人则减Q,最少要杀多少次才可以把所有人杀掉。百度笔试手速太慢。没敲上去,可怜,#include<iostream>using namespace std;void getMax(int a[],int n){ for(int i=0;i<n-1;i++){ if(a[i]>a[i+1]){原创 2017-09-19 22:07:25 · 599 阅读 · 0 评论