**一次性实现所有排序的思想**
冒泡排序、插入排序、选择排序、快速排序、
希尔排序,归并排序、计数排序、基数排序、
桶排序、堆排序
升序排序******
一次全部解决,代码中的注释非常清楚,主函数中释放对应排序方式的 // 就执行对应排序,所有被调函数都不释放就是原本的顺序,使用的软件是VS2019。
放几张图片先。


//冒泡排序、快排、插入排序、选择排序、希尔排序、归并排序、堆排序、基数排序、桶排序、计数排序
//以下排序均为升序排序
//时间复杂度的对比
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 10 //数组中数字个数,暂定10
#define M 50 //数组最大范围的定义
#define GREAT 10000 //Great 代表N个数字当中的最大值比Great小
int main();
int bubbling(int*);//冒泡排序 o(n^n)
int insert(int*);//插入排序 o(n^n)
int select(int*);//选择排序 o(n^n)
int fast(int*,int ,int);//快排 o(nlog^n)
int shell(int*); //希尔排序 o(nlog^2n)
int merge_sort(int* ,int, int); //归并排序 o(nlog^n)
int base(int*); //基数排序 o(n)
int bucket(int*); //桶排序(计数排序) o(n)
int heap(int*, int,int); void build_sortheapify(int *); //堆排序 o(nlog^n)
int main()
{
//数组中元素数值大小不得大于10000
int arrary[] = {
134,54,342,99,88,45,200,87,99,165 };//数字数组大小必须与N一致
int newarrary[M];
int i;
printf("原数组为:\t ");
for (i = 0; i < 10; i++)
printf("%4d", arrary[i]);
printf("\n\n");
//***************函数调用区******************************
//bubbling(arrary);
//insert(arrary);
//select(arrary);
//fast(arrary, 0, N-1);
//shell(arrary);
//merge_sort(arrary,0,N);
//base(arrary);
//bucket(arrary);
//build_sortheapify(arrary);
//*******************************************************
for (i = 0; i < N; i++)
newarrary[i] = arrary[i];
printf("指定方式排序之后为: ");
for (i = 0; i < N; i++)
{
printf("%4d", newarrary[i]);
}
return 0;
}
int bubbling(int* arrary)//冒泡排序
{
int i, j, change

最低0.47元/天 解锁文章
1506

被折叠的 条评论
为什么被折叠?



