
算法
小白家的小黑
我爱学习
展开
-
折半查找(分治法实现)
折半查找(二分查找)递归算法#include<stdio.h>int BinSearch(int a[],int low,int high,int k)//折半查找算法{ int mid; if(low<=high) //当区间存在元素时 { mid=(low+high)/2; //求查找区间的中间位置 if(a[mid]==k) //找到后原创 2021-06-30 21:26:19 · 735 阅读 · 0 评论 -
快速排序(分治算法实现)
快速排序(分治算法实现)代码://分治法解决快速排序#include<stdio.h>void disp (int a[],int n) //输出a中所有元素{ int i; for(i=0;i<n;i++) { printf("%d ",a[i]); } printf("\n");} int Partition(int a[],int s,int t) //划分算法{ int i=s,j=t; int tmp=a[s];原创 2021-06-27 19:20:46 · 623 阅读 · 0 评论 -
蛮力法求解幂集问题
蛮力法求解幂集问题直接穷举求解,将1-n存放到数组a中,求解问题变为构造集合a的所有子集合。设集合a[0…2]={1,2,3},其所有集合元素对应的二进制位及其十进制位如下表所示。集合元素对应的二进制位对应的十进制位{ }——{1}0011{2}0102{1,2}0113{3}1004{1,3}1015{2,3}1106{1,2,3}1117因此对于含有n(n≥1)个元素的集合a,求幂集的过程如下fo原创 2021-06-22 17:02:11 · 598 阅读 · 0 评论 -
回溯法总结
回溯法总结解空间树有两种。子集树和排列数搜索解空间树时,常用的两种剪枝函数为:约束函数和限界函数递归回溯框架1.解空间为子集树int x[n]; //x存放解空间,为全局变量void backtrack(int i) //求解子集树的递归框架{ if(i>n) //搜索到叶子结点,输出一个可行解 输出结果; else { for(j=下界;j<=上界;j++) //用j枚举i所有可能的路径 {原创 2021-06-21 21:41:50 · 635 阅读 · 2 评论