数据结构
come_across
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
递归-N皇后
递归概述:1.自身调用自身。2.有明确的终止条件。3.无需考虑程序运行过程,默认程序可以按照逻辑执行。示例如下:N皇后问题描述:输入一个正整数N,要求N个皇后摆在国际象棋的N*N的棋盘上,要求N个皇后互相不能进攻,要求输出所有的摆放方式(同行,同列,同对角线都可以进攻)。问题分析:1.首先该问题为标准递归问题,需要明确的终止条件,及第N个皇后摆放好后return。2...原创 2019-05-21 10:15:00 · 153 阅读 · 0 评论 -
DFS-全排列
#include "iostream"#include "main.h"using namespace std;int n;int visited[1000]; //标记当前节点是否被访问int Data[1000];int main(){ int ncase; freopen("input.txt", "r", ...原创 2019-05-21 10:22:27 · 154 阅读 · 0 评论 -
递归--将问题分解为更小规模的子问题求解
将问题分解为更小规模的子问题求解例:爬楼梯人每次可以走一个台阶,或者两个台阶,输入楼梯的级数,去不同的走法。n级台阶的走法 = (先一级后,n-1级台阶的走法)+(先两级后,n-2级台阶的走法)用函数表达式表示为f(n) = f(n-1)+f(n-2)边界条件:n=0 return 1;n<0 return 0;代码如下int sum;int stairs...原创 2019-05-21 15:31:42 · 1143 阅读 · 0 评论 -
排序算法
1插入排序描述:1.将数组a从左到右插入数值。2.将数组下标为k∈(1,size-1)的数值作为最左侧待排序的元素。3.遍历数组下标为j∈(0-k-1)的元素,若存在大于a[k]的值,则将a[k]的值赋值给a[j],并将下标为j到k-1的元素全部后移一位。void InsertSort(int a[],int size){ for (int i = 1; i <...原创 2019-05-21 17:33:12 · 145 阅读 · 0 评论 -
二分查找
二分查找概述:二分查找是对有序数列,每次都将数据范围减小一般的查找。时间复杂度:log(n)#include "iostream"using namespace std;//注意:输入的数组必须是有序的。升序int BinarySearch(int a[],int size,int p){ int start = 0; int mid; int en...原创 2019-05-21 18:08:02 · 169 阅读 · 0 评论 -
分治算法
1分治算法-快速排序快速排序是一种利用分治的思想,由递归来实现的排序算法。1.1实现思想:(1)对数组进行排序,设变量k=a[0],然后将k移动到适当的位置,使得“比k小的元素都在k的左侧,比k大的元素都在k的右侧”。(2)把k左侧的元素进行快速排序。(3)把k右侧的元素进行快速排序。1.2代码实现#include<iostream>using name...原创 2019-05-29 23:13:13 · 202 阅读 · 0 评论
分享