用c语言演示冒泡排序法和选择排序法的实现过程要求有欢迎界面界面要演示出变化顺序同时伴有简单的文字或符号说明要求数据随机产生能比较两种算法的效率
以下是用C语言实现冒泡排序法和选择排序法的演示过程:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
// 冒泡排序
void bubbleSort(int arr[], int n) {
int i, j;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
// 选择排序
void selectionSort(int arr[], int n) {
int i, j, minIndex;
for (i = 0; i < n-1; i++) {
minIndex = i;
for (j = i+1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
// 打印数组
void printArray(int arr[], int n) {
int i;
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int n, i;
printf("欢迎使用排序演示程序!\n");
printf("请输入要排序的数组长度:");
scanf("%d", &n);
int arr[n];
// 随机生成数组
srand(time(0));
for (i = 0; i < n; i++) {
arr[i] = rand() % 100; // 生成0-99的随机数
}
printf("\n随机生成的数组为:");
printArray(arr, n);
// 冒泡排序演示
printf("\n冒泡排序开始:\n");
for (i = 0; i < n-1; i++) {
int j;
for (j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
printArray(arr, n);
}
}
printf("冒泡排序结束!\n");
printf("\n排序后的数组为:");
printArray(arr, n);
// 重新生成随机数组
srand(time(0));
for (i = 0; i < n; i++) {
arr[i] = rand() % 100;
}
printf("\n随机生成的数组为:");
printArray(arr, n);
// 选择排序演示
printf("\n选择排序开始:\n");
for (i = 0; i < n-1; i++) {
int j, minIndex;
minIndex = i;
for (j = i+1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
printArray(arr, n);
}
printf("选择排序结束!\n");
printf("\n排序后的数组为:");
printArray(arr, n);
return 0;
}
这段代码首先会要求用户输入要排序的数组长度,然后随机生成指定长度的数组。接下来,会先进行冒泡排序的演示过程,并打印每一步排序后的数组,最后输出排序完成后的数组。然后重新生成随机数组,进行选择排序的演示过程,并打印每一步排序后的数组,最后输出排序完成后的数组。
用户可以根据打印的排序过程和结果来比较冒泡排序和选择排序的效率
原文地址: https://www.cveoy.top/t/topic/hWrz 著作权归作者所有。请勿转载和采集!