算法与数据结构
文章平均质量分 70
海阔天空sky1992
静 静
展开
-
判断素数
素数:又叫质数,在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数。合数:自然数中除了能被1和本身整除外,还能被其它数整除的数称为合数。判断m是素数的方法:只需被 2 ~ 之间的每一个整数去除就可以了。如果m不能被 2 ~ 间任一整数整除,m必定是素数。例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都不能整除,可以判定17是素数。原理:因为如原创 2017-03-04 08:41:21 · 570 阅读 · 0 评论 -
八皇后之回溯法(C语言版)
八皇后问题是十九世纪著名数学家高斯于1850年提出的。问题是:在8*8的棋盘上摆放8个皇后,使其不能互相攻击,即任意的两个皇后不能处在同意行,同一列,或同意斜线上。可以把八皇后问题拓展为n皇后问题,即在n*n的棋盘上摆放n个皇后,使其任意两个皇后都不能处于同一行、同一列或同一斜线上。问题分析:显然,每一行可以而且必须放一个皇后,所以n皇后问题的解可以用一个n元向量X=(x1转载 2017-03-18 13:33:03 · 3130 阅读 · 0 评论 -
排序算法总结及实现(C语言版)
#include <iostream>#include <stack>using namespace std;void swap(int &a, int &b){ int temp; temp = a; a = b; b = temp;}/*1、选择排序基本思想:首先,选出最小的数放在第一位,然后选择第二小的数,放在...原创 2017-03-18 15:08:49 · 10961 阅读 · 5 评论 -
C++之split字符串分割
在C++中没有直接对应的split函数,字符串分割可借助以下方法实现:1、借助strtok函数函数原型:char * strtok (char *str, char * delim);函数功能:以delim为分隔符分割字符串str参数说明:str:要分隔的字符串;delim:分隔符返回值:从str开头开始的一个个被分割的字符串。当没有被分割时则返回null代码1:直接使用s原创 2017-08-18 17:38:26 · 143036 阅读 · 6 评论 -
LeetCode 606. Construct String from Binary Tree(C++版)
题目描述:You need to construct a string consists of parenthesis and integers from a binary tree with the preorder traversing way.The null node needs to be represented by empty parenthesis pair "()原创 2017-08-18 15:23:26 · 398 阅读 · 0 评论 -
排序算法之冒泡排序和快速排序(Java版)
1、冒泡排序算法如下(排序后,由小到大排列):/** * 冒泡排序 * 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 * 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 * 针对所有的元素重复以上的步骤,除了最后一个。 * 持续每次对越来越少的元素重复上面的步骤,直到转载 2017-03-03 16:21:47 · 404 阅读 · 0 评论 -
十进制转n进制栈和非栈两种实现方式(C语言版)
原创文章,欢迎转载,转载请注明作者和链接。#include #include #include #include #include using namespace std;/*用栈实现*/#define STACK_SIZE 100 //栈初始空间大小#define STACK_INCREMENT 10//增加空间typedef struct SqStack{ in原创 2017-03-21 14:47:24 · 2195 阅读 · 0 评论 -
单链表遍历一次求倒数第k个结点和中间结点
单链表:数据结点是单向排列的。一个单链表结点,其结构分为两部分:数据域和指针域(用来存储其直接后继的地址)。例如:typedef struct node{ char name[20]; struct node * next;}student;上述代码定义了一个单链表的结点,其中字符型数组char name[20]用来存储姓名。指针*link是一个用来存储其直接后继的指针。原创 2017-03-11 15:22:23 · 767 阅读 · 0 评论 -
栈的原理以及实现(基于数组)
栈的定义:限制仅在表的一端进行插入和删除运算的线性表。特点:后进先出。举例:物流装车,先装车的后出来,后装车的先出来。栈的结构:空栈:栈顶和栈顶都指向一个无用的头结点存有结点的栈:栈顶指针指向栈顶结点,栈底指针指向头结点举一个简单的例子:在往箱子里面放衣物的时候,放在最上面的衣物总是我们最后放上去的;而当我们从箱子里取出衣原创 2017-03-07 16:28:50 · 1369 阅读 · 1 评论 -
C++之二分查找/折半查找(非递归和递归两种方式)
#include #include using namespace std;//二分查找template //使用模版函数,可以适用于不同类型:int 、float、double等int BinarySearch(T a[], const T & x, int n) { int left = 0, right = n - 1; while(left <= right) { //原创 2017-08-21 21:18:44 · 1804 阅读 · 0 评论