算法分析作业:
1. 使用快速排序和冒泡排序进行数组排序
2. 使用蛮力法进行字符串匹配
3. 实现大整数乘法
4. 实现循环赛制安排表
5. 运用减一算法,生成一个n个元素集合的幂集
6. 使用插人排序对序列2,6,1,4,5,3,2进行排序
7. 实现俄式乘法
8. 实现AVL树
9. 实现2-3树
10. 贪心算法实现活动安排
11. 贪心算法实现背包问题
1. 使用快速排序和冒泡排序进行数组排序
1 /* 2 * @Author: bpf 3 * @Date: 2020-04-01 08:54:13 4 * @LastEditTime: 2020-04-01 10:12:08 5 * @LastEditors: bpf 6 * @Description: 使用快速和冒泡排序数组 7 * @FilePath: Learn in the InternetCodeAlgorithmssortArray.cpp 8 */ 9 #include <stdio.h> 10 11 void Print(int a[], int n) 12 { 13 for(int i=0; i<n; i++) 14 printf("%d ", a[i]); 15 } 16 17 void Switch(int *a, int *b) 18 { 19 int tmp = 0; 20 tmp = *a; 21 *a = *b; 22 *b = tmp; 23 } 24 25 void QuickSort(int a[], int n) 26 { 27 int min = 0, tmp = 0; 28 for(int i=0; i<n-1; i++) 29 { 30 min = i; 31 for(int j=i+1; j<n; j++) 32 if(a[min] > a[j]) 33 min = j; 34 35 if(min != i) 36 Switch(a+min, a+i); 37 } 38 } 39 40 void BubbleSort(int a[], int n) 41 { 42 int tmp = 0; 43 for(int i=0; i<=n-2; i++) 44 for(int j=0; j<=n-2-i; j++) 45 if(a[j] > a[j+1]) 46 Switch(a+j, a+j+1); 47 } 48 49 int main() 50 { 51 int a [7] = {2, 6, 1, 4, 5, 3, 2}; 52 int Length = 7; 53 printf("原数组:"); 54 Print(a, Length); 55 printf(" 快速排序法:"); 56 QuickSort(a, Length); 57 Print(a, Length); 58 printf(" 冒泡排序法:"); 59 BubbleSort(a, Length); 60 Print(a, Length); 61 return 0; 62 } 63 64 /****** 快速排序 65 1. 获得源数组a 66 2. 输出源数组a 67 3. min = 0, 表示默认第一个元素为最小 68 4. i = 0, j = i+1 69 5. 第i轮排序, 从第j个元素开始, 与第min个元素比较 70 如果a[min] > a[j], 则 min = j 71 如果a[min] < a[j], 则跳过 72 6. j++ 直到 j == n 73 7. i++ 74 8. 循环执行第5、6、7步,直到i == n-2 75 9. 输出排序后数组a 76 77 ******* 冒泡排序 78 1. 获得源数组a 79 2. 输出源数组a 80 3. i = 0, j = 0 81 4. 第i轮排序, 从第j个元素开始, 与第j+1个元素比较 82 如果a[j] > a[j+1], 则交换两个数 83 如果a[j] < a[j+1], 则跳过 84 5. j++ 直到 j == n-2-i 85 6. i++ 86 7. 循环执行第4、5、6步,直到i == n-2 87 8. 输出排序后数组a 88 */
2. 使用蛮力法进行字符串匹配
1 /* 2 * @Author: bpf 3 * @Date: 2020-04-01 09:21:35 4 * @LastEditTime: 2020-04-01 09:47:06 5 * @LastEditors: bpf 6 * @Description: 使用蛮力法进行字符串匹配 7 * @FilePath: Learn in the InternetCodeAlgorithmscatchString.cpp 8 */ 9 #include <stdio.h> 10 11 int catStr(char s[], char cmp[]) 12 { 13 int i = 0, j = 0; 14 for(i=0; s[i]!='