tmp

算法分析作业:

1. 使用快速排序和冒泡排序进行数组排序

2. 使用蛮力法进行字符串匹配

 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 Internet\Code\Algorithms\sortArray.cpp
 8  */
 9 #include 
10 
11 void Print(int a[], int n)
12 {
13     for(int i=0; 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; i1; i++)
29     {
30         min = i;
31         for(int j=i+1; 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("\n快速排序法:");
56     QuickSort(a, Length);
57     Print(a, Length);
58     printf("\n冒泡排序法:");
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 */

 

 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 Internet\Code\Algorithms\catchString.cpp
 8  */
 9 #include 
10 
11 int catStr(char s[], char cmp[])
12 {
13     int i = 0, j = 0;
14     for(i=0; s[i]!='\0'; i++)
15     {
16         for(j=0; cmp[j]!='\0'; j++)
17         {
18             if(s[i] !=cmp [j])
19                 break;
20             else
21                 i++;
22         }
23         if(cmp[j] == '\0')
24             return true;
25     }
26     return false;
27 }
28 
29 int main()
30 {
31     char s[100] = "I like apples and pears.";
32     char cmp[16] = {"\0"};
33     printf("源字符串:%s\n", s);
34     printf("请输入匹配的字符串:");
35     scanf("%s", cmp);
36     if(catStr(s, cmp))
37         printf("Yes");
38     else
39         printf("No");
40 }
41 
42 /* 字符串匹配
43 1. 获得源字符串s
44 2. 输入匹配的字符串cmp
45 3. i = 0, j = 0
46 4. 判断字符串s与字符串cmp的第i个字符
47     如果不同则移到字符串s的下一个字符, 即i++
48     如果相同则再匹配cmp的第二个字符, 即j++
49 5. 重复第4步, 直到匹配完字符串s
50 6. 输出结果
51 */

 

 执行结果:

tmp_第1张图片

 

你可能感兴趣的:(tmp)