减治法
核能蚂蚁军
一个爱读历史的程序员
展开
-
插入查找-减治法
r[0]有两个作用:一是进入查找插入位置的循环之前,暂存了r[i]的值,使得不至于因记录的后移而丢失r[i]的内容;二是查找插入位置的循环中充当观察哨#include<stdio.h>#include <iostream>#include<iomanip>using namespace std;void InsertSort(int r[],int n...原创 2019-04-11 19:41:51 · 337 阅读 · 0 评论 -
堆排序-减治法
注意,C++语言的数组下标是从0开始,则r[i]的左子树是r[2i+1],右子树是r[2i+2];#include<stdio.h>#include <iostream>#include<iomanip>using namespace std;void SiftHeap(int r[],int k,int n){ int i,j,temp; i=...原创 2019-04-11 20:11:09 · 1669 阅读 · 1 评论 -
淘汰赛冠军问题-减治法
问题:假设有2^k个****(前提)选手进行竞技淘汰赛,最后决出冠军的选手。#include<stdio.h>#include <iostream>#include<iomanip>using namespace std;bool Comp(int r1,int r2){ if(r1>r2) return true; else r...原创 2019-04-11 20:34:45 · 6162 阅读 · 2 评论 -
假币问题-减治法
【问题】在n枚外观相 司的硬币中,有一枚是假币,并且已知假币较轻。可以通过架天平来任意比较两组硬币 从而得知两组硬币的重量是否相同,或者哪一组更轻一些,假币问题:要求设计一个高效的算法来检测 出这枚假币。#include <iostream>using namespace std;const int N = 8; //假设求解8枚硬币...原创 2019-04-11 22:01:31 · 2039 阅读 · 1 评论 -
两个序列的中位数-减治法
前提:两个比较的序列都为有序的#include<stdio.h>#include <iostream>#include<iomanip>using namespace std;int SearchMId(int A[],int B[],int n){ int s1=0,e1=n-1,s2=0,e2=n-1; int mid1,mid2; whi...原创 2019-04-09 15:06:02 · 1098 阅读 · 1 评论 -
折半查找-减治法
前提是:有序序列#include<stdio.h>#include <iostream>#include<iomanip>using namespace std;int BinSearch1(int r[],int n,int k){ int low=0; int high=n-1; int mid; while(low<=high)...原创 2019-04-09 15:23:37 · 2074 阅读 · 3 评论 -
二叉树查树-减治法
源代码:#include<stdio.h>#include <iostream>#include<iomanip>using namespace std;struct BiNode{ int data; BiNode *lchild,*rchild;};BiNode * SearchBST(BiNode * root,int k){ if(...原创 2019-04-09 20:15:31 · 988 阅读 · 0 评论 -
选择问题-减治法
选择问题:对于无序序列62,47,54,76,95,34,42,84,72,56,找出第9小的数。写出求解过程及最终结果#include<stdio.h>#include <iostream>#include<iomanip>using namespace std;int Partition(int r[],int low,int high) /...原创 2019-04-09 21:02:25 · 2968 阅读 · 0 评论