【C++实现最大堆】教程文章相关的互联网学习教程文章

Quicksort的算法分析及C++实现【代码】【图】

一、关于Quicksort的简单介绍Quicksort算法属于divide and conquer算法,核心思想是取array中的一个元素作为pivot,然后把array除了pivot的其他元素与这个pivot进行比较,比pivot小的元素放在pivot左边,比pivot大的元素放在pivot的右边,我们就得到了两个subarray(左边和右边),然后再对新的subarray进行同样的操作,直到得到新array中只有一个元素。二、quicksort的C++程序实现://// main.cpp // quicksort //// Created b...

Headfirst设计模式的C++实现——观察者模式(Observer)【代码】

WeatherData.h 1#ifndef WEATHERDATA_H_INCLUDED2#define WEATHERDATA_H_INCLUDED3 4 #include <set>5 #include "Display.h" 6 7class WeatherData8{9public: 10void measurementsChanged(); 11void registerObserver( Display *p_display ); 12void removeObserver( Display *p_display ); 1314private: 15int getTemperature() { return25; } 16int getHumidity() { return90; } 17int getPressure() { return120; } 1819 st...

c++实现冒泡排序【代码】【图】

# include<iostream> #include<stdio.h>usingnamespace std;void maopao(int *list){int i,j,temp;for(i=0;i<9;i++){for(j=0;j<9-i;j++){if(list[j]>list[j+1]){temp = list[j];list[j] = list[j+1];list[j+1] = temp;//用于检测每一步的输出/* cout<<"i等于"<<i<<"j等于"<<j<<endl;for(int temp=0;temp<10;temp++){cout<<list[temp]<<" ";}cout<<endl;*/}}} }int main(){int list[10];int n =9,m=0,i;cout<<"input 10 number"<<e...

JNI实现JAVA和C++互相调用【代码】

SDK.h 1#ifndef SDK_H2#define SDK_H3 4 #include "AsyncProxy.h" 5 #include "Module.h" 6 #include <map>7 #include <vector>8 #include <string>9using std::map; 10using std::vector; 11using std::string; 121314class SDK 15{ 16private: 17 vector<Module*> m_modules; 18 AsyncProxy* mp_asyncProxy; 19 map<string,Method*> m_methodIndex; 20private: 21 Method* checkMethod(string methodName, map<s...

图的广度优先/层次 遍历(BFS) c++ 队列实现【代码】

在之前的博文中,介绍了图的深度优先遍历,并分别进行了递归和非递归实现。BFS 无法递归实现,最广泛的实现是利用队列(queue)。这与DFS的栈实现是极其相似的,甚至代码几乎都很少需要改动。从给定的起点节点开始,依次将其邻接节点全部塞入队列,每次访问一个节点时将其pop()出队列,并将其邻接节点也塞入队列。直到队列为空,算法结束。  代码实现并无太大障碍,c++实现: 1 #include <iostream>2 #include <queue>3usingnam...

大话设计模式C++实现-第27章-解释器模式【图】

一、UML图二、概念解释器模式(interpreter):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。三、说明包含哪些角色?(1)AbstractExpression(抽象表达式):声明一个抽象的解释操作,这个接口为抽象语法树中所有的节点所共享。(2)TerminalExpression(终结符表达式):实现与文法中的终结符相关联的解释操作。实现抽象表达式中所要求的接口,主要是一个interpreter()方...

c++ 实现二叉树高度【代码】【图】

1 #include<iostream>2usingnamespace std;3 4//二叉树节点 5struct BinaryNode6{7char ch;8 BinaryNode* lchild;9 BinaryNode* rchild; 10}; 11int HeightTree(BinaryNode* root); 12//初始化二叉树13void CreateBinaryTree() { 14 BinaryNode node1 = { ‘A‘,NULL,NULL }; 15 BinaryNode node2 = { ‘B‘,NULL,NULL }; 16 BinaryNode node3 = { ‘C‘,NULL,NULL }; 17 BinaryNode node4 = { ‘D‘,NULL...

C++实现快速排序

void quickSort(int a[], int low, int high){ if (low <= high) return; int i = low; int j = high; int key = a[i]; while (i < j) { while (i < j && a[j] >= key) --j; a[i] = a[j]; while (i < j && a[i] <= key) ++i; a[j] = a[i]; } a[i] = key; quickSort(a, low, i - 1); quickSort(a, i + 1, high);}原文:http://sharep.blog...

简单的加密与解密的实现---仿射密码(c++使用string)【代码】

使用c++中string类,相比于使用数组,没有了数组长度的限制,而且操作跟加的方便 #include <iostream> #include <string> using namespace std; string jiami(string str,int k,int b); string jiemi(string pass,int k,int b); int canshu(int k,int b); int main() { string str; //明文 string pass; //密文 string res; //明文 int k,b; //加密算法的参数 cout<<"请输入明文:"; ...

利用kindlegen实现txt格式小说转换为mobi格式小说(C++实现)【代码】【图】

一直以来喜欢在kindle上看小说,kindle不伤眼,也可以帮助控制玩手机的时间。但在kindle上看txt格式的网络小说就很头疼了,这类小说在kindle上是没有目录的,而且篇幅巨长。所以一直以来我都想加上目录。于是就有了这篇文章。  在这里,要想加上目录,就要将txt格式的小说转换为mobi格式。我借助了kindlegen,它的一些语法不再这里详说了,给个示意图,如下:   总思路就是生成html和ncx、opf文件,代码如下:  1.read.cpp#...

C++实现单链表【代码】

C++实现单链表/实现堆什么的也是面试常客了,这里就实现一下。 其实细心点写很简单,每个人的实现方式可能不一样,但是思路还是大体相同的。我这里是用一个head来指向链表头元素,head本身无意义,方便而已。 1 #include<bits/stdc++.h>2usingnamespace std;3 4//结点类结构 5struct node{6int val;7struct node *next;8};9 10class LinkList {11private:12 node *head;13public:14 LinkList() { 15 head=new ...

设计模式C++实现二十一:中介者模式

中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。中介者是各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。中介者模式很容易在系统中应用,也很容易在系统中误用。当系统出现多对多交互复杂的对象群是,不要急于使用中介者模式,而要先反思你的系统在设计上是不是合理。优点:Mediator的出现减少了各个colleague的耦合,使得可以独立地改变和复用各个colleague类和Mediator;由...

遗传算法解决3SAT问题(C++实现代码)【代码】【图】

1 SAT问题描述命题逻辑中合取范式 (CNF) 的可满足性问题 (SAT)是当代理论计算机科学的核心问题, 是一典型的NP 完全问题.在定义可满足性问题SAT之前,先引进一些逻辑符号。 一个 SAT 问题是指: 对于给定的 CNF 是否存在一组关于命题变元的真值指派使A为真. 显然,如A为真,则CNF的每个子句中必有一个命题变元为1(真)。2 遗传算法遗传算法类似于自然进化,通过作用于染色体上的基因寻找好的染色体来求解问题。与自然界相似,遗传算法...

C++实现stack【栈】【代码】

要求://****file: stack.h/*对stack进行初始化检查stack为空,或已满将整数压入到stack中从stack里弹出整数 不移除任何袁术,讲过stack的内容输出到标准输出Stack类的私有成员如下:一个用于打印错误信息的私有哦成员函数三个私有数据成员构成了stack类的private实现,此实现为类接口提供支持。 */类的实现 1 #include <iostream>2usingnamespace std;3 4 5class Stack{6public : 7enum {MaxStack = 5};8//初始化栈,栈为空 9vo...

c语言实现hashtable,类似C++的map和iOS的NSDictionary

跟线性数组和链表不同,HashTable是快速查找的数据结构。本文中的HashTable使用链表处理数组。该HashTable可以指定table的长度,提供了遍历的方法。包括table的长度的选择也比较讲究。 cp_int32 nPrime[MAX_HASH_PRIME_ARRAY_NUM] = {17, 37, 79, 163, 331, 673, 1361 };就是说table的长度来取自上面这个数组。比如用户设定了200,那么table的长度就是331,找到第一次比输入值大的数值。可以注意到上面的都是素数。 下面...