C语言数据结构排序、插入排序、希尔排序等的介绍

文章目录

  • 前言
  • 打印数组函数
  • 一、插入排序
  • 二、希尔排序
  • 总结

前言

C语言数据结构排序、插入排序、希尔排序等的介绍


打印数组函数

打印数组函数定义

// 打印数组
void PrintArray(int* a, int n)
{int i = 0;for (i = 0; i < n; i++){printf("%d ", a[i]);}printf("\n");
}

一、插入排序

插入排序定义

// 插入排序------升序
void InsertSort(int* a, int n)
{int i = 0;for (i = 1; i < n; i++){int end = i - 1;int tmp = a[end + 1];while (end >= 0){if (tmp < a[end]){a[end + 1] = a[end];end--;}else{break;}}a[end + 1] = tmp;}
}

插入排序测试

void TestInsertSort()
{int a[] = { 9, 6, 5, 7, 3, 1, 4, 2, 8, 0 };int sz = sizeof(a) / sizeof(a[0]);PrintArray(a, sz);InsertSort(a, sz);PrintArray(a, sz);
}

效果如下:
在这里插入图片描述

二、希尔排序

  • 希尔排序的思想是先分组,进行预排序,使数组趋向于有序。

  • 然后进行逐步减小分组的跨度,直至分组跨度为1,变为有序排序。
    在这里插入图片描述

  • 如上图所示,先进行分组,在组内进行排序。

希尔排序定义

// 希尔排序
void ShellSort(int* a, int n)
{int gap = n;while (gap >= 1){gap /= 2;int j = 0;for (j = 0; j < gap; j++){int i = 0;for (i = gap + j; i < n; i++){int end = i - gap;int tmp = a[end + gap];while (end >= 0){if (tmp < a[end]){a[end + gap] = a[end];end -= gap;}else{break;}}a[end + gap] = tmp;}}}
}

希尔排序测试

void TestShellSort()
{int a[] = { 9, 8, 7, 6, 5, 1, 2, 3, 4, 0, -9, -26, -65, 100, 1000, 10000 };int sz = sizeof(a) / sizeof(a[0]);PrintArray(a, sz);ShellSort(a, sz);PrintArray(a, sz);
}

效果如下:
在这里插入图片描述


总结

C语言数据结构排序、插入排序、希尔排序等的介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/20784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Thinkphp 使用Model来增删改查

这里写目录标题 一、Model部分二、增加三、查询四、删除五、修改 一、Model部分 <?php namespace app\common\model;use think\Model; use think\Request; use think\Db; use traits\model\SoftDelete;class Visit Extends Model {// use SoftDelete;// 开启自动写入时间戳…

掘金AI 商战宝典-高阶班:如何用AI制作视频(11节视频课)

课程目录&#xff1a; 1-第一讲用AI自动做视频&#xff08;上&#xff09;_1.mp4 2-第二讲用AI自动做视频&#xff08;中&#xff09;_1.mp4 3-第四讲A1做视频实战&#xff1a;店铺宣传_1.mp4 4-第五讲Al做视频实战&#xff1a;商品带贷1.mp4 5-第六讲Al做视频实战&#x…

卷积神经网络——为什么卷积哪儿都能用?

两个函数的卷积 本质上就是先将一个函数翻转&#xff0c;然后进行滑动叠加。 在连续情况下&#xff0c;叠加指的是对两个函数的乘积求积分。 在离散情况下就是加权求和。 它在不同的领域有着不同的解释 在热力系统中&#xff0c;卷积通常用来计算持续添加的燃料&#xff0c…

台灯怎么选对眼睛好?六个步骤告诉你台灯怎么选!

在这个信息爆炸的时代&#xff0c;孩子们的学习压力越来越大&#xff0c;视力问题也日益凸显。尽管没有详细的地域数据&#xff0c;但整体而言&#xff0c;中国青少年的近视率已经高居世界第一位&#xff0c;且不同地区的近视率可能存在一定的差异。为了让孩子在学习的道路上走…

Vue中的计算属性和侦听器:提升响应式编程的艺术

引言 Vue.js是一个用于构建用户界面的渐进式框架&#xff0c;它的核心特性之一是响应式编程。Vue通过数据绑定和响应式系统&#xff0c;使得开发者能够以声明式的方式处理数据变化。在Vue中&#xff0c;计算属性&#xff08;Computed Properties&#xff09;和侦听器&#xff…

处理3D数据的强大工具 CloudCompare (多平台兼容)

CloudCompare 是一个开源的3D点云&#xff08;Point Cloud&#xff09;和网格&#xff08;Mesh&#xff09;处理软件&#xff0c;广泛应用于地理信息系统&#xff08;GIS&#xff09;、计算机图形学、测绘、考古、建筑和工程等领域。自2004年由Daniel Girardeau-Montaut开发以来…

0基础学习程序编程:探索未知,开启智慧之旅

0基础学习程序编程&#xff1a;探索未知&#xff0c;开启智慧之旅 在数字化时代的浪潮中&#xff0c;程序编程已成为一项不可或缺的技能。对于零基础的学习者来说&#xff0c;如何踏上这条充满挑战与机遇的编程之路&#xff1f;本文将从四个方面、五个方面、六个方面和七个方面…

Buffer Pool运行机制理解

Buffer Pool机制理解 一、为什么使用Buffer Pool&#xff1f; 众所周知&#xff0c;磁盘数据是以数据页的形式来去读取的&#xff0c;一个数据页默认大小 16K&#xff0c;也就是说你本意只想读取一行数据&#xff0c;但是它会给你加载一页的数据到buffer pool里面。这样的话就…

智能报警器——物联网应用创新

一、项目的目的、意义 我国自2020年至11月起共接报火灾23.3万起&#xff0c;亡1335人&#xff0c;伤837人&#xff0c;直接财产损失36.12亿元&#xff0c;其中&#xff0c;因电线短路、过负荷及电气设备故障等电气原因引起的火灾共40481起&#xff0c;占火灾总数的30.7%&#…

小红书图片视频下载利器,无水印!

在刷小红书时&#xff0c;总能看到一些博主发的好看的壁纸或者视频&#xff0c;想下载下来做头像或者设置为手机电脑的桌面。不过众所周知&#xff0c;直接保存的图片和视频都是有水印的&#xff0c;那如何去掉水印呢&#xff1f; 有些朋友肯定说&#xff0c;我知道有去水印的…

长城电脑压缩文件丢失了怎么办?怎么解决

在数字化时代&#xff0c;电脑已成为我们日常生活和工作中不可或缺的设备。长城电脑作为国内知名品牌&#xff0c;以其稳定可靠的性能赢得了广大用户的信赖。然而&#xff0c;即便是可靠的电脑&#xff0c;也难免会遇到一些问题。其中&#xff0c;压缩文件丢失无疑是一个令人头…

Leetcode - 周赛399

目录 一&#xff0c;3162. 优质数对的总数 I 二&#xff0c;3163. 压缩字符串 III 三&#xff0c;3164. 优质数对的总数 II 四&#xff0c; 3165. 不包含相邻元素的子序列的最大和 一&#xff0c;3162. 优质数对的总数 I 假设 x 是 nums1 数组中的值&#xff0c;y 是 nums2…

大模型微调常见方法

0&#xff0c; prefix tuning prefix-tuning 跟 soft prompt tuning 类似&#xff0c;只不过&#xff0c;soft prompt tuning 仅仅针对 transformer模型的输入进行&#xff0c;而prefixt-tuning 是针对 每一个 transformer block进行 soft prompt tuning 跟 hard prompt tunin…

PDF流前端如何接收:深度解析与实用策略

PDF流前端如何接收&#xff1a;深度解析与实用策略 在数字化时代&#xff0c;PDF作为一种常见的文件格式&#xff0c;广泛应用于各种场景。然而&#xff0c;如何在前端接收并处理PDF流&#xff0c;对于许多开发者来说仍是一个挑战。本文将从四个方面、五个方面、六个方面和七个…

c++ string模拟实现

模拟实现string类&#xff0c;里面包含四个成员变量&#xff0c;第一个是指向字符数组的指针&#xff0c;第二个变量是目前存放了多少个字符&#xff0c;第三个变量为这个字符数组的容量的大小。最后一个为静态成员变量npos。 注意&#xff1a;一个const 修饰的整型&#xff0…

项目更换服务器时间少8小时

时区错误 输入 date 查看当前的linux系统时间 hwclock --show 查看当前linux硬件时间 如果发现系统时间和硬件时间不同步&#xff0c;而且硬件时间是正确的&#xff0c;可以用以下命令&#xff1a;hwclock --hctosys 把硬件时间同步到系统时间 mysql时区错误可以参考这位大…

云服务器重启后无法访问phpMyAdmin的解决方案

一、背景 我在解决另一问题的时候&#xff0c;重启了云服务器。当我想再次访问phpMyAdmin时&#xff0c;出现了如下报错。 HTTPConnectionPool(host127.0.0.1, port888): Max retries exceeded with url: /phpmyadmin_609a02b02423214c/index.php?langzh_cn (Caused by Ne…

嵌入式知识学习分享~~

欢迎关注小徐的个人微信公众号&#xff0c;感觉微信的文章排版不错&#xff0c;后续会继续分享一些新的学习记录以及和大家共同进步~

如何利用unicloud阿里云云函数实现文件包括图片或文件上传,unicloud云函数写法一览

这里以一个单文件上传为例子&#xff0c;多图多文件同理&#xff0c;循环单图处理逻辑即可。 背景 前端vue上传图片文件&#xff08;base64格式&#xff09;到服务器&#xff0c;并获取返回的服务器资源存储路径 传入参数 { ”queryStringParameters“:{ "file":&qu…

Flutter 中的 CustomMultiChildLayout 小部件:全面指南

Flutter 中的 CustomMultiChildLayout 小部件&#xff1a;全面指南 Flutter 是一个由 Google 开发的开源移动 UI 框架&#xff0c;它允许开发者使用 Dart 语言来构建高性能、美观的移动应用。在 Flutter 的丰富组件库中&#xff0c;CustomMultiChildLayout 是一个强大的布局小…