C语言:随机生成数+希尔排序
2023-09-27 14:22:46 时间
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAXSIZE 10
void initArr(int arr[] , int length);
void showArr(int arr[] , int length);
void shellSort(int arr[] , int length);
int main()
{
srand((unsigned int)time(NULL));
int arr[MAXSIZE];
printf("==========排序前的序列=============\n");
initArr(arr,MAXSIZE);
showArr(arr,MAXSIZE);
printf("==========希尔排序后的序列=============\n");
shellSort(arr,MAXSIZE);
showArr(arr,MAXSIZE);
system("pause");
return 0;
}
void initArr(int arr[] , int length)
{
for(int i = 0 ; i < length ; i++){
arr[i] = rand()%20;
}
}
void showArr(int arr[] , int length)
{
for(int i = 0 ; i < length ; i++){
printf("%4d",arr[i]);
}
printf("\n");
}
void shellSort(int arr[] , int length)
{
//希尔排序
int h = 4;
while(h>=1){
for(int i = h ; i < length ; i++){
for(int j = i ; j >= h && arr[j] < arr[j-h] ; j-=h){
int temp = arr[j];
arr[j] = arr[j-h];
arr[j-h] = temp;
}
}
h /= 2;
}
}
相关文章
- 五种C语言非数值计算的常用经典排序算法
- C语言:十进制转换为二进制的数学方法
- iMindMap12如何利用思维导图学习C语言的数组经验分享
- C语言:判断二叉树是否为二叉排序树的算法
- C语言:快速排序算法
- C语言:顺序存储结构的快速排序
- C语言:利用自定义函数排序
- 王道数据结构【栈队列及其应用】部分代码实现(C语言)
- C语言:冒泡排序法:将若干字符串按字母顺序(由小到大)排序输出
- 【C语言】输入3个数赋值给变量a、b、b,要求按由小到大的顺序输出它们
- 【C语言】制作“学生管理成绩系统”,内容包括【系统显示】【录入信息】【删除信息】【等级评定】【成绩排序】【成绩修改】【查找学生】涉及循环、结构体和数组等
- 2022-06-18青少年软件编程(C语言)等级考试试卷(四级)解析
- 【C】C语言实现学生成绩管理系统
- C语言爬楼梯问题(递推)
- 【C语言】算法学习·归并排序
- 全网最经典函数题型【详解】——C语言
- C语言复合字面量的使用
- C语言和设计模式(总结篇)
- C语言程序设计基础|排序
- C语言浮点数存储结构
- C语言 | 栈区空间初探
- C语言中switch case语句可变参实现方法(case 参数 空格...空格 参数 :)
- [数据结构 - 第3章] 线性表之双向链表(C语言实现)
- 理解C语言——从小菜到大神的晋级之路(7)——指针变量