{"title":"C语言实现冒泡排序和选择排序算法演示:效率对比与可视化","description":"本文使用C语言实现了冒泡排序和选择排序算法,并通过可视化的方式演示了排序过程,方便直观地比较两种算法的效率。代码包含欢迎界面,随机数据生成,排序过程展示,以及排序结果输出。","keywords":"冒泡排序, 选择排序, C语言, 算法演示, 效率比较, 可视化排序","content":""#include<stdio.h>\n#include<stdlib.h>\n#include<time.h>\n\n// 冒泡排序\nvoid bubbleSort(int arr[], int n) {\n int i, j;\n for (i = 0; i < n-1; i++) {\n for (j = 0; j < n-i-1; j++) {\n if (arr[j] > arr[j+1]) {\n int temp = arr[j];\n arr[j] = arr[j+1];\n arr[j+1] = temp;\n }\n }\n }\n}\n\n// 选择排序\nvoid selectionSort(int arr[], int n) {\n int i, j, minIndex;\n for (i = 0; i < n-1; i++) {\n minIndex = i;\n for (j = i+1; j < n; j++) {\n if (arr[j] < arr[minIndex]) {\n minIndex = j;\n }\n }\n int temp = arr[i];\n arr[i] = arr[minIndex];\n arr[minIndex] = temp;\n }\n}\n\n// 打印数组\nvoid printArray(int arr[], int n) {\n int i;\n for (i = 0; i < n; i++) {\n printf("%d ", arr[i]);\n }\n printf("\n");\n}\n\nint main() {\n int n, i;\n printf("欢迎使用排序演示程序!\n");\n printf("请输入要排序的数组长度:");\n scanf("%d", &n);\n int arr[n];\n\n // 随机生成数组\n srand(time(0));\n for (i = 0; i < n; i++) {\n arr[i] = rand() % 100; // 生成0-99的随机数\n }\n\n printf("\n随机生成的数组为:");\n printArray(arr, n);\n\n // 冒泡排序演示\n printf("\n冒泡排序开始:\n");\n for (i = 0; i < n-1; i++) {\n int j;\n for (j = 0; j < n-i-1; j++) {\n if (arr[j] > arr[j+1]) {\n int temp = arr[j];\n arr[j] = arr[j+1];\n arr[j+1] = temp;\n }\n printArray(arr, n);\n }\n }\n printf("冒泡排序结束!\n");\n printf("\n排序后的数组为:");\n printArray(arr, n);\n\n // 重新生成随机数组\n srand(time(0));\n for (i = 0; i < n; i++) {\n arr[i] = rand() % 100;\n }\n\n printf("\n随机生成的数组为:");\n printArray(arr, n);\n\n // 选择排序演示\n printf("\n选择排序开始:\n");\n for (i = 0; i < n-1; i++) {\n int j, minIndex;\n minIndex = i;\n for (j = i+1; j < n; j++) {\n if (arr[j] < arr[minIndex]) {\n minIndex = j;\n }\n }\n int temp = arr[i];\n arr[i] = arr[minIndex];\n arr[minIndex] = temp;\n printArray(arr, n);\n }\n printf("选择排序结束!\n");\n printf("\n排序后的数组为:");\n printArray(arr, n);\n\n return 0;\n}"}


原文地址: http://www.cveoy.top/t/topic/pFuE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录