常用排序算法
2020-12-24 09:27
标签:选择 int i+1 idt 排序 代码实现 class 网上 思想 简述一些常用算法,并用代码实现它。 注:动图是在网上找的。 (1)冒泡排序 核心思想:交换序列中相邻两个整数。 测试代码: 运行结果: 5 4 3 2 1 (2)选择排序 核心思想:每一趟在n-i+1 (i = 1,2,...,n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。 测试代码: 运行结果: 5 4 3 2 1 (3)其它算法 后续补充 常用排序算法 标签:选择 int i+1 idt 排序 代码实现 class 网上 思想 原文地址:https://www.cnblogs.com/mrlayfolk/p/13211116.html 1 void bubble_sort(void)
2 {
3 /*
4 * 冒泡排序:以降序为例进行说明
5 * 比较相邻的元素,将值最小的元素交换到右边。
6 */
7 int a[] = {3, 4, 1, 5, 2};
8 int i = 0, j = 0;
9 int tmp;
10
11 for (i = 0; i sizeof(a)/sizeof(int); i++) {
12 for (j = 0; j sizeof(a)/sizeof(int) - i; j++) {
13 if (a[j] 1]) {
14 tmp = a[j];
15 a[j] = a[j+1];
16 a[j+1] = tmp;
17 }
18 }
19 }
20 for (i = 0; i sizeof(a)/sizeof(int); i++) {
21 printf("%d\t", a[i]);
22 }
23 printf("\n");
24 }
1 void select_sort(void)
2 {
3 /*
4 * 选择排序:每一趟在n-i+1 (i = 1,2,...,n-1)个记录中
5 * 选取关键字最小的记录作为有序序列中第i个记录。
6 */
7 int a[] = {3, 4, 1, 5, 2};
8 int i = 0, j = 0;
9 int tmp;
10
11 for (i = 0; i sizeof(a)/sizeof(int); i++) {
12 for (j = i+1; j sizeof(a)/sizeof(int); j++) {
13 //每次选择出最大的数,并放到前面去
14 if (a[i] a[j]) {
15 tmp = a[i];
16 a[i] = a[j];
17 a[j] = tmp;
18 }
19 }
20 }
21 for (i = 0; i sizeof(a)/sizeof(int); i++) {
22 printf("%d\t", a[i]);
23 }
24 printf("\n");
25 }