Algorithms
eijnew
这个作者很懒,什么都没留下…
展开
-
字符组合问题的分治算法
题目是这样的: 把一个字符串中所有字符的所有可能的组合打印出来(字符串中没有重复的字符),不考虑字符顺序('123'和'312'是一样的) 该算法使用分治思想的C语言描述如下: void generate_all_combinations(char *str, int len, char *prefix) { if (len==0) {原创 2012-02-14 09:18:40 · 1176 阅读 · 0 评论 -
多机调度问题的贪心解法
多机调度问题: 有n个独立的作业需要在m台相同的机器上进行加工处理. 作业i需要的加工时间为ti. 每个作业可以任选一台机器加工, 但加工结束前不能中断, 作业不允许拆分. 要求给一种作业调度方案, 使所给的n个作业在尽可能短的时间内完成. 问题分析: 为什么是NP问题? (待求证) 问题解答: 采用最长处理时间作业优先的贪心选择策略可以设计出较好的近似算法原创 2012-02-15 10:25:15 · 8470 阅读 · 0 评论 -
二分搜索(BinarySearch)的分治思想C语言实现
二分搜索是常用的搜索算法, 要求给定的元素集合非递减排序, 根据给定待查找元素, 查找其索引, 如果未找到, 返回-1. 代码为: // 二分搜索 5 // @pre : a非递减序, 且长度为len 6 // @post: 返回x在a中的索引或-1 7 int binary_search(int a[], int len, int x)原创 2012-02-14 13:33:01 · 2702 阅读 · 0 评论