算法基础
比较常用的简单算法
千寻之森
执天地为罗盘,点星辰为棋子,画日月为黑白,定乾坤为输赢。
展开
-
算法基础11:二分查找
private static int binarySearch(int[] data, int value){ int low = 0,high = data.length-1; while (low<=high){ int mid = low+(high-low)/2; if(data[mid] == value) return mid; else if(data[mid]>value)..原创 2020-11-10 14:05:55 · 105 阅读 · 0 评论 -
算法基础十:八大基本排序
一、交换排序 1、冒泡排序 相邻比较,交换,把最大交换到最后 /** * 冒泡排序,两两比较 * @param data */ private static void bubbleSort(int[] data){ for(int i=0;i<data.length-1;i++){ for(int j=0;j<data.length-i-1;j++){ if(data[j]&g原创 2020-11-05 18:01:52 · 145 阅读 · 0 评论 -
算法基础九:Joseph
Joseph问题 // Joseph's Problem // input: n,m-- the number of persons, the inteval between persons // output:-- return the reference of last person int josephus0(int n,原创 2015-12-09 14:57:00 · 684 阅读 · 0 评论 -
算法基础八:汉诺塔问题
#include //从x移动n个盘子到z(汉诺塔问题) void move(int n,int x,int y,int z) { if(n==1){ printf("%c-->%c\n",x,z); } else{ move(n-1,x,z,y); printf("%c-->%c\n",x,z); move(n-1,y,x,z); } }原创 2015-12-07 19:09:20 · 292 阅读 · 0 评论 -
算法基础七:N皇后构造解,n>=4
//N皇后构造解,n>=4 void even1(int n,int *p){ int i; for (i=1;i p[i-1]=2*i; for (i=n/2+1;i p[i-1]=2*i-n-1; } void even2(int n,int *p){原创 2015-12-09 15:00:52 · 628 阅读 · 0 评论 -
算法基础六:幻方构造
/幻方构造(l!=2) #define MAXN 100 void dllb(int l,int si,int sj,int sn,int d[][MAXN]){ int n,i=0,j=l/2; for (n=1;n d[i+si][j+sj]=n+sn; if (n%l){原创 2015-12-09 15:05:49 · 681 阅读 · 0 评论 -
算法基础五:字符串处理
1 模式匹配(kmp) //模式匹配,kmp算法,复杂度O(m+n) //返回匹配位置,-1表示匹配失败,传入匹配串和模式串和长度 //可更改元素类型,更换匹配函数 #define MAXN 10000 #define _match(a,b) ((a)==(b)) typedef char elem_t; int pat_match(int ls,elem_t* str,int原创 2015-12-09 15:07:30 · 327 阅读 · 0 评论 -
算法基础四:计算表达式
中缀转后缀:引用地址:http://www.nowamagic.net/librarys/veda/detail/2307我们把平时所用的标准四则运算表达式,即“9+(3-1)*3+10/2"叫做中缀表达式。因为所有的运算符号都在两数字的中间,现在我们的问题就是中缀到后缀的转化。中缀表达式“9+(3-1)*3+10/2”转化为后缀表达式“9 3 1-3*+ 10 2/+”规则:从左到右遍历中缀表达原创 2015-12-08 20:02:47 · 457 阅读 · 0 评论 -
算法基础三:布尔母函数
布尔母函数 //布尔母函数 //判m[]个价值为w[]的货币能否构成value //适合m[]较大w[]较小的情况 //返回布尔量 //传入货币种数n,个数m[],价值w[]和目标值value #define MAXV 100000 int genfunc(int n,int* m,int* w,int value){ int i,j,k,c;原创 2015-12-09 15:03:04 · 452 阅读 · 0 评论 -
算法基础一:数据结构基础回顾
简介:主要分为两大类:线性结构和非线性结构,线性主要包括:数组、链表、栈、队列,非线性主要包括:集合、树、图 一、线性结构 1、线性表 (1)数组 (2)链表 (21) 单向链表 (22) 双向链表 (23)循环链表 (24)跳跃链表 (25)自组织链表 (26)稀疏表 2、栈 3、队列 二、树 1、二叉树 (1)二叉查找树(BST) (2)平衡二叉树(AVL) (3)红黑二叉树...原创 2020-07-27 16:43:17 · 139 阅读 · 0 评论 -
算法基础二:基本数据结构时间复杂度
图片来源: https://blog.csdn.net/ted_cs/article/details/82881831原创 2020-09-15 17:26:32 · 89 阅读 · 0 评论