刘汝佳在算法竞赛入门经典,http://book.douban.com/subject…,的 118 页提到生成一个可重集的全排列问题,跟上次的 生成一个字符串的全排列 很相像,但是写法却巧妙很多
#include <stdio.h>
void quick_sort(int a[], int left, int right)
{
int i=left, j=right;
int povit = a[(i+j)/2];
while (i …… 阅读全文
Tag Archives: 算法
简单枚举的除法
今天看到一个简单枚举的题目
除法
输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2 阅读全文
栈结构练习
今天从刘汝佳的书上看到一个简单的栈的题目
有n节车厢从A方向驶入车站,按进站顺序编号1~n。现让这些火车按照某种特定的顺序进入B方向的铁轨并驶出车站。为了重组车厢,可以借助中转站C。C是一个可以停放任意多节车厢的车站,但由于末端封顶,驶入C的车厢必须按照相反的顺序驶出C。对于每个车厢,一旦从A移入C,就不能再…… 阅读全文
输出一个字符串的组合
跟上次输出一个字符串的排列类似,http://zrj.me/archives/472,要求输出一个字符串的组合,思路也是递归
#include <stdio.h>
#include <string.h>
void combine(char str[], int str_index, char res_total, char result[], int res_index)
{
if (res_total == res_index)
{
for (int i=0; i<res_…… 阅读全文
KMP 串匹配
昨天一天没有写出代码来,惭愧惭愧,昨天在看红黑树和堆排序,可惜最后都没有能写出东西来,渐渐的感觉网络上的中文资料不太可以依赖了啊,要么就是没有,要么就是 google 出来排名在前面的都会写错,看来要么转向英文资料,要么转向纸质书了
今天参考这里,http://blog.csdn.net/v_july_v/…,写了个 KMP 串匹配,…… 阅读全文
算法复习之归并排序
今天接到电话面试的时候提到了一个归并排序,之前用的比较少,于是完了之后参照 http://blog.csdn.net/morewindo… 写了一个归并排序
#include <stdio.h>
#include <stdlib.h>
void merge(int n[], int first, int mid, int last, int temp[])
{
int i=first, j=mid+1, k=0;
while (i<=mid &…… 阅读全文
输出一个字符串的全排列
今天看到 http://blog.csdn.net/morewindo… 这里提出了一个问题
用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列,
如 abc 的全排列: abc, acb, bca, dac, cab, cba
想了想(想了好久啊,好久没有碰数据结构和算法了),觉得可以 dfs,这样来搞:
#include <stdio.h>
#include <stdlib.h…… 阅读全文
算法复习之快速排序
快速排序这个自己想了一会,真的想不出来,还是查了资料,使用 C89 标准函数库有一个非常简单的写法,(维基上的不能跑,自己稍稍改了一下)
#include <stdio.h>
#include <stdlib.h>
static int cmp(int *a, int *b)
{
return *a-*b;
}
int main()
{
int arr[10]={5, 3, 7, 4, 1, 9, 8, 6, 2};
qsor…… 阅读全文
算法复习之冒泡排序与选择排序
基础丢的差不多了,是时候该重新捡起来,不然真的心虚啊,于是就从排序开始,上 poj 找基础的排序题居然没有,悲催,太低级了,最后在 hdu 上找到一个排序题,http://acm.hdu.edu.cn/showprob…
忘得差不多也有一个好处,就是可以自己从头再想,这次决定不看任何参考资料,就凭着模糊的印象,慢慢的把算法的思路先理…… 阅读全文