![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法代码收藏
zy3381
这个作者很懒,什么都没留下…
展开
-
一维空间最近点对问题
[code="java"]/** * 一维空间最近点对问题 * @author zy * */public class CPair1{ static class CPair { int dist; int d1,d2; public CPair(int dist, int d1, int d2) { this.dist = dis...原创 2013-12-13 15:59:02 · 1948 阅读 · 1 评论 -
二分查找
[code="c"]#include/* a[]:待查找数组 n:数组长度 num:待查找数字 return 找到的数字在数组中的下标,没找到返回-1*/int binSearch(int a[], int n, int num){ int begin = 0; int end = n-1; int mid;...原创 2014-03-05 13:00:08 · 86 阅读 · 0 评论 -
十进制十六进制互转、数字转字符、日期转总天数
[code="c"]#include/* 将十六进制转换成十进制输出*/void hex2dec(char *hex){ int result = 0; int temp; while(*hex != '\0') { if(*hex>='0' && *hex='A' && *hex='a' && *hex...原创 2014-03-07 21:35:59 · 353 阅读 · 0 评论 -
两个乓乓球队比赛问题
[size=large]题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。[/size][size=medium]基本思想:保持甲队的顺序不动,利用三层循环来穷举乙队所有可能的排列,并利用好甲乙两队的一对一关系和题目给定的限定条件进行过滤,即可得...原创 2014-03-08 11:26:11 · 218 阅读 · 0 评论 -
几个人围成一圈||猴子选大王(约瑟夫环)
[size=medium]约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的人的序号为5,4,6,2,3。最后剩下1号。一堆猴子都有编号,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,...原创 2014-03-09 16:08:57 · 259 阅读 · 0 评论 -
链表按序插入节点
[size=medium]在一个有序的链表上插入一个节点,使得插入节点后的链表仍然有序[/size][code="c"]#include#define N 5struct Node{ int data; struct Node *next;};//创建链表并初始化数据struct Node *create(){ int i;...原创 2014-03-14 11:07:20 · 268 阅读 · 0 评论 -
合并两个有序链表
[size=medium]两个已经按照从小到大的排序的链表,合并成一个链表,仍然保持从小到大排序(貌似是归并排序里的基本操作)[/size][code="c"]#includestruct Node{ int data; struct Node *next;};//创建链表struct Node *create(int n,int count...原创 2014-03-14 16:00:34 · 98 阅读 · 0 评论 -
链表逆序(链表倒置)
[size=large]将一个链表按逆序排列,即将链头当链尾,链尾当链头[/size][code="c"]#includestruct Node{ int data; struct Node *next;};//创建链表struct Node *create(int n,int count){ int i; struc...原创 2014-03-14 21:25:44 · 411 阅读 · 0 评论 -
删除第一个链表中与第二个链表重复的节点
[size=medium]有两个链表a和b,设结点中包含学号、姓名。从a链表中删去与b链表中有相同学号的那些结点。[/size][code="c"]#includestruct Node{ int data; struct Node *next;};//创建链表struct Node *create(int n,int count){...原创 2014-03-14 21:32:44 · 290 阅读 · 0 评论 -
从两个文件读入字母,合并排序后输出到另一个文件
[size=medium]没啥多说的。。。[/size][code="c"]#includevoid main(){ FILE *fp1, *fp2, *fp3; char filePath1[50],filePath2[50],filePath3[50]; char buf[250], ch; int i, j=0, k; pri...原创 2014-03-17 16:20:12 · 296 阅读 · 0 评论 -
零幺串
[size=medium]我们称用1和0组成的串为“零幺串”,称只用1组成的串为“幺串”,称只用0组成的串为“零串”。试写一个函数(过程),使得它对任给零幺串S,将返回一个值N1和值N0,其中N1表示S中最长幺串的长度,N0表示S中最长零串的长度。例如,假设S是下面表示的零幺串,则在N1中返回4,在N0中返回3 S=00010111001110001111[/size][color...原创 2014-03-17 21:07:18 · 510 阅读 · 2 评论 -
两个矩阵相乘
[code="c"]#include#define M 3#define N 2#define S 3void main(){ int a[M][N] = {1,2,3,4,5,6}; int b[N][S] = {1,2,3,4,5,6}; int c[M][S]; // 答案为{9,12,15,19,26,33,29,40,51}...原创 2014-03-04 21:54:24 · 156 阅读 · 0 评论 -
寻找鞍点(行最大,列最小)
[code="c"]#includevoid main(){ int a[3][3]= { 3,6,-1, 4,5,1, 8,7,3, }; int i,j,k; int mini,maxj,minInde...原创 2014-03-04 11:00:28 · 172 阅读 · 0 评论 -
strcmp函数的实现
[size=large]如果两个字符串相等,返回0,如果不相等,返回它们不想等的字符的差值(标准版实现是返回1或者-1)[/size][code="c"]#includeint strcmp1(char *str1, char *str2){ while(*str1 == *str2) { if(*str1 == '\0') ...原创 2014-02-26 11:39:08 · 144 阅读 · 0 评论 -
重建二叉树(AC遇到问题)
[code="java"]import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.StreamTokenizer;public class Main { //二叉树节点定义 static class TreeN...原创 2013-12-13 16:01:21 · 96 阅读 · 0 评论 -
倒置链表
[code="java"]class Node{ public int data; public Node next; public Node(int data) { this.data = data; }}public class Main{ public static void reverse(Node head) { System....原创 2013-12-13 16:02:31 · 86 阅读 · 0 评论 -
循环赛日程表
[code="java"]/** * 循环赛日程表 * @author zy * */public class Table2{ /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int...原创 2013-12-13 16:42:18 · 106 阅读 · 0 评论 -
递归方程求解
[img]http://dl2.iteye.com/upload/attachment/0092/1286/d02a6451-0304-3432-ac45-ec2244f4e51f.jpg[/img][img]http://dl2.iteye.com/upload/attachment/0092/1284/4b859a8a-cb99-3ae7-8d1f-ffacfba5d65c...原创 2013-12-13 17:15:03 · 191 阅读 · 0 评论 -
Java去除源代码注释
总体思路是对待分析的带注释段的字符串进行遍历,声明一个缓冲字符串变量来记录非注释的部分,最后返回这个缓冲字符串变量作为结果1.首先考虑/*comment*/形式的注释当遇到/*部分便停止记录,继续往后遍历到*/部分,实现跳过/**/段2.考虑/*comment/*inside*/out*/形式的嵌套注释声明一个数字变量来记录/*的开始的次数,遇到一个/*就+1,遇到一个*/...原创 2013-12-22 18:35:28 · 940 阅读 · 0 评论 -
非递归汉诺塔(使用栈)
[code="java"]/** * 栈方式非递归汉诺塔 * @author zy * */public class StackHanoi{ /** * @param args */ public static void main(String[] args) { System.out.println("递归方式:"); hano...原创 2013-12-23 12:10:37 · 505 阅读 · 0 评论 -
编辑距离
直接递归形式的编辑距离求解(递归过程会产生很多重复计算,所以应该采用动态规划来提高效率)[code="java"]public class LevenshteinDistance{ /** * @param args */ public static void main(String[] args) { //1// String str1...原创 2014-01-11 19:44:25 · 73 阅读 · 0 评论 -
猴子吃桃问题
猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共摘了多少个桃子? [code="c"]#include/************************************************************...原创 2014-02-24 12:27:09 · 88 阅读 · 0 评论 -
指向指针的方法对n个整数排序
[code="c"]#include"stdio.h"/* 通过指向指针的指针来排序 即根据指针所指的元素的大小来将指针地址排序 而后依次输出指针地址的时候得到的就是有序的数组 比如3,1的指针地址分别为a和b,即a->3,b->1 交换指针位置后a->1,b->3 对本程序中的ptr指针数组进行了排序*/void sor...原创 2014-02-26 10:54:44 · 905 阅读 · 0 评论 -
指向指针的方法对n个字符串排序
[size=large]说实话前面的对整数的指向指针的排序真没看出有什么意思,但是这个对字符串的指向指针的排序方法让我察觉到了其意义所在,字符串一般都需要大量的存储空间来保存,如果直接对其进行排序,必然涉及到大量的字符串移动,这是非常浪费资源的,而通过指向字符串的指针来排序,排序的对象仅仅是一个存储着指针值的数组而已,差不多就是对整数排序的开销而达到了发现字符串大小顺序的效果,而无需对原来的字符串...原创 2014-02-26 11:12:36 · 1322 阅读 · 0 评论 -
编辑距离(递归)
[code="c"]#includeint dis(char *s1, int begin1, int end1, char *s2, int begin2, int end2){ if(begin1>end1) { if(begin2>end2) { return 0; } ...原创 2014-03-23 21:54:30 · 361 阅读 · 0 评论