- 博客(16)
- 收藏
- 关注
原创 在有序矩阵中找特定元素
#include<iostream>#define MAXROW 4#define MAXCOL 4using namespace std;//在行列都排好序的矩阵中找数//一般从右上角开始,如果角点比目标数小,那么划去一行,如果比目标数大,划去一列//划去一行bool findNumber(int m[][MAXCOL], int row, int col, int ...
2018-07-09 10:34:58
468
原创 C++ 打印之字形矩阵
#include<iostream>#define MAXROW 3#define MAXCOL 4using namespace std;//打印之字形矩阵//压中的点是每条对角线最右上的点(tR,tC)和最左下(dR,dC)的点//右上点的移动逻辑:每次往左移动,移动不了了往下移动//左下点的移动逻辑:每次往下移动,移动不了了往右移动void printDiag...
2018-07-03 22:08:44
1594
原创 C++ 蛇形矩阵
#include<iostream>#define MAXROW 4#define MAXCOL 4using namespace std;//转圈打印矩阵//注意矩阵形状:1、行向量 2、列向量 3、普通矩阵void printEdge(int m[][MAXCOL],int tR,int tC,int dR, int dC){ //如果是行向量 if(tR...
2018-07-03 20:30:09
1856
原创 c++——猫狗队列
#include<iostream>#include<string>#include<queue>#include<stdexcept>//标准异常库using namespace std;//猫狗队列//在C++中,类是不能加权限修饰符的,只有类的成员或者继承的时候才能加。//这里是public继承,意思是Pet中所有的访问权限在Do...
2018-07-02 17:51:42
1190
原创 C++只用队列实现栈
#include<iostream>#include<stack>using namespace std;#define NUM 5//仅用栈实现一个队列结构class MyQueue{private: stack<int> *stackk,*help;public: MyQueue(); ~MyQueue(); void push(i...
2018-06-18 21:30:24
564
1
原创 C++只使用队列实现栈
#include<iostream>#include<queue>using namespace std;#define NUM 5//仅用队列实现一个栈结构class MyStack{private: queue<int> *q1,*q2;public: MyStack(); ~MyStack(); void rotation(); ...
2018-06-18 20:31:46
545
原创 返回栈中的最小元素
实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。要求:1、pop、push、getMin操作的时间复杂度都是o(1)。2、设计的栈类型可以使用现成的栈结构。#include<iostream>#include<stack>using namespace std;class MyStack{private: stack<int&...
2018-06-17 16:18:30
419
原创 C++用数组实现一个固定大小的栈/队列
#include<iostream>#include<exception>using namespace std;#define NUM 5//用数组结构实现大小固定的队列和栈class ArrayIndexOutOfBoundsException:public exception{private: const char*ptr;public: Arra...
2018-06-15 20:54:22
2254
原创 桶排序
#include<iostream>#include<cstdlib>using namespace std;#define N 15//桶排序void swap(int *a,int j,int i){ int buf=a[j]; a[j] = a[i]; a[i] = buf; }void printArray(int *a,int len){...
2018-06-13 17:12:19
113
原创 堆排序
#include<iostream>#include<cstdlib>using namespace std;#define N 5void swap(int *a,int j,int i){ int buf=a[j]; a[j] = a[i]; a[i] = buf; }void printArray(int *a,int len){ for...
2018-06-11 15:23:11
116
原创 随机快速排序
#include<iostream>#include<cstdlib>using namespace std;#define N 15void printArray(int *a,int len){ for(int i=0;i<len;i++) cout<<a[i]<<" "; cout<<endl;}v..
2018-06-09 21:25:47
211
原创 荷兰国旗问题
#include<iostream>#include<vector>using namespace std;#define N 10//荷兰国旗问题:现有红、白、蓝三个不同颜色的小球,乱序排列在一起,请重新排列这些小球,使得红白蓝三色的同颜色的球在一起。//问题转换,给定数组A[0...N-1],元素只能取0,1,2三个值,设定算法使得所有的0在左边,所有的1在中...
2018-06-09 20:56:12
206
原创 归并排序应用之逆序对
什么是逆序对?数组中任意两个元素组合是降序排列的,以下给出了暴力求解法和归并求解法。#include<iostream>using namespace std;#define N 12//逆序对:其实就是求每个数右边有多少个数比其小//暴力求解法int VolentReversePair(int *a,int length){ int cnt=0; for(int i=...
2018-06-08 18:29:13
286
原创 归并排序应用之小和问题
小和问题:Q1、什么是小和?A:在一个数列中,任意元素p左边所有比p小的数之和,即为小和。Q2:什么是小和问题?A: 数列中所有元素的小和之和就是小和问题利用归并排序求解思想:从第一个元素p起向后看,如果有n个元素都比p大,说明n个元素的小和中都有p,因此,第一个元素对小和的贡献是n*p,遍历完整个数组后,就可以求出全部小和了。给出了暴力求解法和归并求解法,二者结果相同。#include<i...
2018-06-08 17:56:26
744
原创 三大排序之归并排序
归并排序的思想集中体现在:归和并上。归是指使用递归(分治)的思想,并是指分到最小单元的时候,开始合并。废话不多说,直接贴代码,有问题欢迎评论讨论。代码如下,经验证和冒泡排序结果一致。#include<iostream>using namespace std;#define N 12//并void Merge(int *a,int left,int middle,int righ...
2018-06-08 16:28:57
151
原创 三种基本排序:冒泡排序、选择排序、插入排序
第一次写博客,如果有错误,欢迎大家指出,谢谢。1、插入排序:假设数组的长度为N。Step1:首先在0~N-1的位置上找最小的元素,将最小的元素与0位置的元素交换。Step2:然后在1~N-1的位置上找最小的元素,将最小的元素与1位置的元素交换。......StepN:区间变为1个元素,结束。插入排序的实质就是,不停的遍历,依次将最小的元素放在区间开头,然后不停的向后缩小区间。2、冒泡排序:假设数组...
2018-06-07 20:22:28
225
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人