基于C语言实现的6种排序算法的排序系统

您所在的位置:网站首页 堆排序C语言小白 基于C语言实现的6种排序算法的排序系统

基于C语言实现的6种排序算法的排序系统

2024-07-16 14:49| 来源: 网络整理| 查看: 265

排序系统 题目:自定义一个大小和元素自设的数组,能选择六种排序任意一个排序算法进行排序,并输出结果

需求分析: 需求1:需要设定一个大小和元素都可以自设的数组。 需求2:需要六种排序算法。 需求3:需要设定一个选择结构。 需求4:能循环使用 (没说自己加的)

设计流程

(1) 选择是否进入系统 (2) 输入要设计数组得大小 (3) 给数组中输入元素 (4) 选择排序得方法 (5) 输出结果 (6) 清屏并返回(1)操作

主要结构

在这里插入图片描述

重要代码片段 { printf("\n\n 选择排序方法,用该方法排序并输出: \n 0.简单排序 \n 1.直接插入排序 \n 2.冒泡排序 \n 3.快速排序 \n 4.归并排序 \n 5.堆排序 \n 6.退出\n"); scanf("%d",&n2); switch(n2) { case 0:{SelectSort(a, n1);Print(a,n1);} break; //简单排序 case 1:{InsertSort(a, n1);Print(a,n1);} break; //直接插入排序 case 2:{bubbling_sort(a,n1);Print(a,n1);}break; //冒泡排序 case 3:{quickSort(a, 0, n1-1);Print(a,n1);} break; //快速排序 case 4:{MergeSort(a, b, n1);Print(b,n1);}break; //归并排序 case 5: {HeapSort(a,n1);Print(a,n1);}break; //堆排序 case 6:{flag=0;}break; default:printf("请输入(0~6)范围之内的数字"); } system("pause"); system("cls"); }break; case 1:return 0;break; } 程序思路

先利用switch语句设置一排序系统进入界面,进入选0,退出选1; 在这里插入图片描述 选择0进入case 0:后{}中的排序系统;代码为上面的重要代码片段 在这里插入图片描述 选择要采用的排序算法,因为有system(“pause”);代码,所以在结果界面会停下; 在这里插入图片描述 最后system(“cls”);清屏 在这里插入图片描述

排序算法可以参考的博客:https://blog.csdn.net/a3192048/article/details/80269862 我的代码 #include #include #define MAXSIZE 100 void Print(int a[],int n) { printf("排序后的结果为: "); for (int j = 0; j a[j]) k = j; } return k; } void SelectSort(int a[], int n) { int key, tmp; for (int i = 0; i < n-1; i++) { key = SelectMinKey(a, n, i); //选择最小的元素 if (key != i) { tmp = a[i]; a[i] = a[key]; a[key] = tmp; //最小元素与第i位置元素互换 } } } //直接插入排序 void InsertSort(int a[], int n) { for (int i = 1; i a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } } //快速排序 void swap(int *a, int *b) { int tmp = *a; *a = *b; *b = tmp; } int partition(int a[], int low, int high) { int privotKey = a[low]; //基准元素 while (low < high) { //从表的两端交替地向中间扫描 while (low < high && a[high] >= privotKey) --high; //从high 所指位置向前搜索,至多到low+1 位置。将比基准元素小的交换到低端 swap(&a[low], &a[high]); while (low < high && a[low]


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3