算法
EvanChu
这个作者很懒,什么都没留下…
展开
-
插入排序算法
插入排序:将元素分为两堆(已排序和未排序),每次从未排序中取出第一个元素插入到已排序队列中。#include<stdio.h>void main(){ int buf[]={1,7,2,6,9,5,4,3};//插入: int i=1,j,temp; //i之前:已排序 i之后:未排序 for(i=1;i<8;i++) { j=i; temp=b...原创 2018-07-16 17:00:43 · 118 阅读 · 0 评论 -
c++创建四个进程轮流打印BACDBACD(利用锁)
#include<stdio.h>#include<pthread.h>#include<semaphore.h>pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;pthread_cond_t cond=PTHREAD_COND_INITIALIZER;int set=0;void* fun1(vo...原创 2018-09-20 20:15:17 · 428 阅读 · 0 评论 -
c++实现重定向
#include<stdio.h>#include<unistd.h>int main(){ int fd[2]; pipe(fd); int pid=fork(); if(pid>0) { close(fd[0]); dup2(fd[1],1); close(fd[1]); execlp("ipconfig","ipconfi...原创 2018-09-20 20:11:42 · 820 阅读 · 0 评论 -
c++实现进程间的通信(匿名管道方法)
#include<stdio.h>#include<unistd.h>int main(){ int fd[2]; pipe(fd); int pid=fork(); if(pid>0) { close(fd[0]); write(fd[1],"hello world",20); close(fd[1]); } if(pid==0)...原创 2018-09-20 20:10:26 · 1261 阅读 · 0 评论 -
c++实现守护进程
#include<iostream>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>#include<stdlib.h>#include<stdio.h>using namespace std;...原创 2018-09-20 20:08:39 · 1438 阅读 · 0 评论 -
C++实现 排序树
#include<iostream>using namespace std;template<typename T1>class sortTree;//根的类型template<typename T>class node{public: //有参构造 node(T); //友元类 friend class sortTree<T&g...原创 2018-08-28 16:07:00 · 389 阅读 · 0 评论 -
C++实现 顺序树
#include<iostream>using namespace std;//前置声明class tree;//节点:class node{public: friend class tree; node(char);protected: char data;//数据域 node* lchild;//指向左孩子 node* rchild;//指向右孩子 }...原创 2018-08-30 20:40:29 · 373 阅读 · 0 评论 -
链表 (插入,遍历,删除)多种方法代码详解:
数据的分类:1、物理结构:数据所在内存的表现(顺序结构、链式结构) 顺序结构:数据之间紧挨在一起 链式结构:不挨在一起2、逻辑结构:数据之间的联系(散列,线性,树形,图形) 散列:节点之间毫无联系 线性:节点之间存在1:1的联系(每一个节点只有一个直接前驱和一个直接后驱) 通过物理区来表现线表: 1、顺序线性表 2、链式线性表 树形结...原创 2018-08-02 20:13:24 · 1051 阅读 · 1 评论 -
动态数组
c/c++实现动态数组代码示范如下:要注意作用域、生命周期和使用的步骤#include<stdio.h>#include<string.h>#include<stdlib.h>struct Array{ int *pa; short ilen; short top;};void main(){ struct Array a={NU...原创 2018-07-24 19:39:05 · 544 阅读 · 0 评论 -
栈 代码详解(初始化栈、清空栈、进栈、出栈、判断栈为空为满,将二进制结果取出)
栈:是一种思想,实现将数据以先进后出(FILO:first in last out)方式操作一、模型:井口二、数据类型: //宏: #define MAXSIZE 10 //重命名:将int取一个别名:StackType typedef int StackType; //栈的类型: struc...原创 2018-08-01 16:31:27 · 12246 阅读 · 0 评论 -
C++ 顺序队列详解
1、队列:FIFO(先进先出)2、特点:元素操作以FIFO方式操作2、例子:窗口打饭,银行排队3、队列两端: 队尾:只能进队的一端 队头:只能出队#include<iostream>using namespace std;#define MAXSIZE 10//定义类:class queue{//方法public: queue();...原创 2018-08-09 19:22:48 · 2241 阅读 · 0 评论 -
二分查找法(折半查找法)详解
检测某个值是否存在,用二分查找法的前提是序列是有序的(升序或降序)在序列中不断折半缩小区间,进行查找。//定义一个升序序列,查找2是否在序列中,定义最左值(L),中间值(M),最右值(R),不断循环直到2等于中间值,循环结束,查找成功打印输出。int buf[]={1,2,3,4,5,6,7,8,9,10,11}; 第一次 L M...原创 2018-07-19 16:56:32 · 1173 阅读 · 0 评论 -
C/C++实现冒泡排序算法
原创 2018-07-12 19:40:47 · 687 阅读 · 0 评论 -
监哨值法
设立一个哨兵,寻找最大/最小值原创 2018-07-11 19:40:22 · 367 阅读 · 0 评论 -
选择排序算法
选择排序:每一次从未排序中选择最值,并依次存放。#include<stdio.h>//选择排序void SelectSort(char buf[30],int ilen){//每一次从排序中选择最值 从小到大 int i,j,listen; for(i=0;buf[i]!='\0';i++) { //从i-'\0'选择最值——监哨值法 liste...原创 2018-07-17 19:50:24 · 133 阅读 · 0 评论 -
c++创建四个子线程轮流打印BACDBACD(利用信号量)
#include<stdio.h>#include<pthread.h>#include<semaphore.h>sem_t s1,s2,s3,s4;void* fun1(void* arg){ sem_wait(&s2); printf("A\n"); sem_post(&s3);}void* fun2(void* a...原创 2018-09-20 20:28:13 · 469 阅读 · 0 评论