算法导论
prettysky123
这个作者很懒,什么都没留下…
展开
-
插入排序
今天把Introduction to algorithms看完了第二章的内容,感觉还是有有不懂得地方比如那个Lgn就整的我很无奈,表示不大懂n=2^lgn是怎么得出来的。准备这个周先把书看一遍做做练习题,先不着急进行下一章。下午吃饭之前把插入排序写了一遍,因为一个&符号混在printf里导致数据溢出,整的好无奈。三天不练手生,以后还是老老实实编程吧,杜绝低级错误。下面贴下代码: 这个插入排序也是算原创 2015-04-13 08:42:55 · 377 阅读 · 0 评论 -
选择算法(选择排序)
选择算法(选择排序) 考虑排序存储在数组A中的n个数:首先找出A中的最小元素并将其与A[1]中的元素进行交换,接着找出A中次最小元素并将其与A[2]中的元素进行交换。对A中前n-1个元素按该方式继续,该算法称为选择算法。 ——算法导论P16#includ原创 2015-05-12 20:58:31 · 412 阅读 · 0 评论 -
快速排序
#include<iostream> #include<algorithm> using namespace std; int PARTITION( int A[], int p, int n) { int key = A[n-1]; int i = p - 1; for(int j = p; j < n-1; j++){ if( A[j] <= key){原创 2015-08-16 19:14:51 · 269 阅读 · 0 评论 -
2.3-5 BINARY-SEARCH
/*BINARY-SEARCH*/ #include<stdio.h> using namespace std; int BINARY_SEARCH (int A[], int low, int high, int key){ int mid = ( low + high) / 2; if( low <= high){ if(key == A[mid])原创 2015-08-03 16:46:14 · 291 阅读 · 0 评论 -
2-4逆序对(inversion)
#include<stdio.h> #include<iostream> using namespace std; int inVersion( int A[], int B[], int n) { int x = 0; int q = 0; for(int i = n-1; i >= 0;i--){ for(int j = 0; j < i; j++){原创 2015-08-14 13:48:56 · 363 阅读 · 0 评论 -
2.3-4 递归实现插入排序
2.3-4 递归实现插入排序#include<cstdio> using namespace std; int INSERTION (int *A, int r) { int key = A[r]; int i = r - 1 ; while(i >= 0 && A[i] > key) { A[i+1] = A[原创 2015-07-29 11:46:56 · 487 阅读 · 0 评论 -
2.3-2重写MERGE
MERGE 过程,使之不使用哨兵元素,而是在一旦数组 L 或 R 中的所有元素都 被复制回数组 A 后,就立即停止,再将另一个数组中余下的元素复制回数组 A 中#include<cstdio> using namespace std; int MERGE(int *A, int p, int q, int r){ int n1 = q - p + 1; int n2 = r - q原创 2015-06-28 17:18:24 · 559 阅读 · 0 评论 -
分治法 归并排序(递归算法)
当待排序的序列长度为1,递归“开始回升”,在这种情况下不要做任何工作,因为长度为1的每个序列都以排好序。分解—>解决—>合并#include<cstdio> using namespace std; int MERGE(int *A, int p, int q, int r){ int n1 = q - p + 1; int n2 = r - q; int L[1000],R原创 2015-05-19 20:04:26 · 531 阅读 · 0 评论 -
二进制加法(算导课后习题)
#include<stdio.h> #include<iostream> #include<cstring>#define MAXN 300+10 using namespace std; void Add(char s1[],char s2[]) { int num1[MAXN] = {0},num2[MAXN] = {0};//对数组num1和num2进行初始化,初始化为零; i原创 2015-04-24 21:49:08 · 1264 阅读 · 0 评论