数据结构与算法分析 (C语言描述)
文章平均质量分 80
putaoxiangqi
这个作者很懒,什么都没留下…
展开
-
多项式的和,积(优化版)
/******************************************************************************************求多项式的和,积(改进版)*核心思想:输入的多项式先排序,再运算*多项式(p1,p2)求和算法: 1.多项式排序O(logMN); * 2.求和过程,简化成了计算原创 2016-04-03 22:15:08 · 796 阅读 · 0 评论 -
[0,N]范围内0到9的分布统计
/***********************************************************************************数字分布问题*计算[0,N]范围内,特定数字的个数。譬如计算[0,12]范围内1 的个数,即:f(12)= 5*算法1(暴力循环):从1-N,累加每一个数字中的1的个数 O(N*logN)*算法2(寻找规律,得到公式):原创 2016-04-04 12:18:13 · 572 阅读 · 0 评论 -
任意精度整数运算(计算2的4000次方)
/***********************************************************************************任意精度整数运算*例如计算:2的4000次方*算法核心:使用数组完成大整数的乘法,每一个单元保存一位数字。*数组乘法算法: 每一次乘法: 1.计算当前位乘2的积(tmp=N*arr[i]+high_number;)原创 2016-04-04 17:01:19 · 1547 阅读 · 1 评论 -
3.10 约瑟夫环问题--循环单链表解决
/****************************************************************约瑟夫环问题*问题描述:N个人做成一圈,从第K个人开始报数游戏(从0开始报数), 报M的出列,最后剩下的一个人获胜*算法: 循环单链表(无头节点)*新建单链表: 返回value最小的节点当作"head",新建过程即是插入过程*删除(出列操原创 2016-04-04 18:28:46 · 455 阅读 · 0 评论 -
括号匹配判断
符号匹配*使用数组栈完成*问题描述:读取一个文件,检查文件中的小括号(),中括号[],大括号{}是否匹配,如果不匹配,输出不匹配的行的行数。*核心代码:遇到右括号的处理过程:首先判断是否空栈,再判断是否是空栈**author: fangchang*date: 2016/03/25原创 2016-03-25 17:55:05 · 411 阅读 · 0 评论 -
链表计算多项式的和,乘积
/*******************************************************************************计算多项式的和,乘积*使用链表完成*核心代码: 合并同类项( joinSameIterm(pnode head) )*多项式的和: 将两个链表合并成一个链表,对新的链表合并同类项*多项式的积: 使用新链表记录乘积的结果,原创 2016-03-24 18:19:30 · 566 阅读 · 0 评论 -
基数排序的数组/链表实现
/*************************************************************基数排序*使用数组/链表完成*核心代码: radixSortByArr(int arr[], int n) / radixSortByList(int arr[], int n)*使用数组实现的算法核心: res[ arr[i] ]+=1 ; //将待排序数组原创 2016-03-25 11:38:07 · 583 阅读 · 0 评论 -
中缀表达式转成后缀表达式,以及后缀求值
/*************************************************************中缀表达式转成后缀表达式计算后缀表达式*使用数组栈完成*问题描述: 输入一个中缀表达式: a+b*c+(d*e+f)+g,转成后缀表达式*算法: 1.如果是数字,则直接输出; 2.如果是计算符或者括号,则利用栈判断选择何种操作 2.1原创 2016-03-26 11:37:12 · 501 阅读 · 0 评论