- 博客(7)
- 问答 (1)
- 收藏
- 关注
原创 插入排序
插入排序提一下的是减治法中的减常量技术将第n个数插入一个A[n-1]有序的数组中,见代码:#includeusing namespace std;/*算法思想*外层for循环,i = 1 to n-1*内层for循环,j = i - 1;*/void insert_sort(int* A, int len){ int temp = 0; int j=0; for(int
2015-10-20 20:20:31 221
原创 冒泡排序
不想多说,直接上代码。*1.外循环,pass,总送len-1 轮*2.内循环,每次将最大的数放在最后*/void bubble_sort(int* A, int len){ int temp = 0; for(int pass = 1; pass < len; pass ++){ for(int i=0; i < len - pass; i++){ if(A[i] >
2015-10-20 19:15:07 240
原创 组合问题---递归实现
先写一下自己的思路:写递归函数,一定要确定参数,有以下三个参数:String str 字符串int num 要获取的字符数String temp 已经获取到的字符不多说了,直接见代码:public class Combine { private List listStr = new ArrayList(); pu
2015-10-09 00:21:36 471
原创 排列组合问题(n取m)
首先先写一下自己的感想:代码运行效率快,但是难以理解,且很难写,非递归算法。组合算法思路:1.建立一个新数组,其下标表示1到m个数,数组元素的值为1表示其下标 代表的数被选中,为0则没选中。2.初始化,将数组前n个元素置1,表示第一个组合为前n个数。3.从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为 “01”组合,同时将其左边的所有“1”全部移动到数
2015-10-07 13:04:56 991 1
原创 递归--快速排序
写代码的话,首先确定递归的三个参数,分别是数值,左边界,右边界void quick_sort(int*A, int l, int r){ if(r > l){ int mid = A[l]; int i = l, j = r; while(i < j){ while(i = mid){ j--; } if(i < j){ A[i] = A[j];
2015-10-06 18:29:46 298
原创 分治法--归并排序
归并排序,简单,直接见代码:void merge_sort(int* A, int l, int r, int* T){ if(r - l > 1){ int m = (l+r) >> 1; merge_sort(A, l, m, T); merge_sort(A, m, r, T); int i = l, j = m, k = l; while(i < m && j <
2015-10-06 18:18:38 270
原创 分治法Devide-and-Conquer
分治算法一般分为3个步骤:1.划分问题:把问题的实例划分为子问题2.递归求解:递归解决子问题3.合并问题:合并子问题的解得到原问题的解最大连续和问题#includeusing namespace std;int maxsum(int* A, int x, int y){ int i, m, v, L, R, max; if(y-x == 1) return A[
2015-10-02 16:08:43 455
空空如也
Linux下Eclipse导出Hadoop项目找不到库文件
2015-12-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人