【代码分享】
//插入排序
void lnsertionSort(int a[], int n)
{
int end = 0;
int tmp = 0;
int i = 0;
for (i = 0;i < n - 1; i++)
{
end = i;
tmp = a[end + 1];
while (end >= 0)
{
if (a[end] > tmp)
{
a[end + 1] = a[end];
end–;
}
else
{
break;
}
}
a[end + 1] = tmp;
}
}
//希尔排序
void ShellSort(int a[], int n)
{
//gap是间隔(增量)
int gap = n;
while (gap > 1)
{
gap /= 2;//间隔(增量)每次循环都缩小一半
//end表示 每一组 有序序列最末尾的元素的下标int end = 0;//tmp表示 每一组 无序序列的第一个元素的下标int tmp = 0;int i = 0;//把插入排序中的1都换成gapfor (i = 0; i < n - gap; i++){end = i;tmp = a[end + gap];while (end >= 0)//end{//如果前gap个元素大于后gap个,就让前gap个向后移gap位//给后gap个可插入的空隙if (a[end] > tmp){a[end + gap] = a[end];end-=gap;}else{ //因为是从已经有序的序列的末尾向前插入//所以前一个之前的元素都比它小,所以不用再比较,直接结束循环break;}}//插入空出的空隙a[end + gap] = tmp;}
}
}
//冒泡排序
void bubbleSort(int a[], int n)
{
int i = 0;
int j = 0;
int flag = 0;
//总共需要n趟冒泡排序
for (i = 0; i < n; i++)
{
//重置flag的值
flag = 0;
//一趟冒泡排序,排出一个最大值for (j = 0; j < n - i - 1; j++){if (a[j] > a[j + 1]){int tmp = a[j];a[j] = a[j + 1];a[j + 1] = tmp;//只要一趟冒泡排序发生了交换,就还没排序完成flag = 1;}}//如果一趟冒泡排序之后,flag还是0,//就说明没有交换,已经有序if (flag == 0)break;
}
}
//交换函数
void Swap(int* p, int* q)
{
int tmp = *p;
*p = *q;
*q = tmp;
}
//选择排序
void SelectSort(int a[], int n)
{
//count表示有序序列末尾的下标
int count= 0;
int i = 0;
//min为最小值的下标
int min = 0;
while(count<n)
{
//每一趟选择排序都从有序数列末尾开始找最小值
min = count;
for (i = count; i<n;i++)
{
if (a[min] > a[i])
min = i;
}
//Swap为交换函数
Swap(&a[count], &a[min]);
//每一趟选择排序之后有序数列末尾下标加一
count++;
}
}
相关文章:
【代码分享】
//插入排序 void lnsertionSort(int a[], int n) { int end 0; int tmp 0; int i 0; for (i 0;i < n - 1; i) { end i; tmp a[end 1]; while (end > 0) { if (a[end] > tmp) { a[end 1] a[end]; end–; } else { break; } } a[end 1] tmp; } } //希尔排序…...
windows 使用ffmpeg .a静态库:读取Wav音频并保存PCM
ffmpeg读取Wav音频并保存PCM(源代码保存成 c 文件): // test_ffmpeg.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 ////#include <iostream>#include <libavcodec/avcodec.h> #include <libavform…...
Docker部署ZooKeeper
在分布式系统中,ZooKeeper是一个关键的组件,用于协调和管理多个节点之间的状态。本文将详细介绍如何使用Docker安装和部署ZooKeeper,包括非集群部署和集群部署两种情况。 非集群部署 前期准备 在开始之前,请确保你已经安装了Docker,并且拥有sudo权限。 关闭防火墙和SEL…...
在PyCharm中使用Git
安装Git CMD检查Git版本 打开cmd,输入git version,检查当前下载版本 配置git的user信息 在cmd中输入 git config --global user.name "用户名"git config --global user.email "用户邮箱"输入:git config --list&…...
【JavaSE】 P165 ~ P194 抽象方法,抽象类,接口,接口内容,多接口实现和父类继承,多态,向上转型,向下转型
目录 抽象抽象的概念抽象方法和抽象类的格式抽象方法和抽象类的使用抽象方法和抽象类的注意事项● 练习1. 写一个父类图形类,其中有方法,功能计算面积为抽象方法。2. 抽象类继承。判断对错,没错的分析运行结果3. 发红包,群内用户类作为父类,有…...
LeetCode: 数组中的第K个最大元素
问题描述 在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。 解题思路 解决这个问题有多种方法,下面是几种常见的解题策略: 排序后选择: 将数组排序,…...
亚马逊自养号测评:如何安全搭建环境,有效规避风险
要在亚马逊上进行自养号测评,构建一个真实的国外环境至关重要。这包括模拟国外的服务器、IP地址、浏览器环境,甚至支付方式,以创建一个完整的国际操作环境。这样的环境能让我们自由注册、养号并下单,确保所有操作均符合国际规范。…...
uniApp 调整小程序 单个/全部界面横屏展示效果
我们打开uni项目 小程序端运行 默认是竖着的一个效果 我们打开项目的 pages.json 给需要横屏的界面 的 style 属性 加上 "mp-weixin": {"pageOrientation": "landscape" }界面就横屏了 如果是要所有界面都横屏的话 就直接在pages.json 的 gl…...
【java】18:内部类(2)匿名内部类
(1)本质是类(2)内部类(3)该类没有名字(4)同时还是一个对象 说明:匿名内部类是定义在外部类的局部位置,比如方法中,并且没有类名 1.匿名内部类的…...
c语言之字符串的输入和输出
c语言在输出字符串时,用格式符‘%s",代码比较简洁 如果说数组长度大于字符串长度,也只输出\0前的内容 字符串默认后面有\0. 如果字符串有多个\0,会默认在第一个\0结束 #include<stdio.h> int main() {int i;char a…...
戏说c第二十六篇: 测试完备性衡量(代码覆盖率)
前言 师弟:“师兄,我又被鄙视了。说我的系统太差,测试不过关。” 我:“怎么说?” 师弟:“每次发布版本给程夏,都被她发现一些bug,太丢人了。师兄,有什么方法来衡量测试的…...
C语言初阶—函数
函数:子程序,是一个大型程序中的某部分代码,由一个或多个语句块组成,它负责完成某项特定任务,而且相较于其他代码,具有相对独立性。一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏&a…...
vue3的router
需求 路由组件一般放在,pages或views文件夹, 一般组件通常放在component文件夹 路由的2中写法 子路由 其实就是在News组件里面,再定义一个router-view组件 他的子组件,机会渲染在router-view区域 路由传参 <RouterLink :to"/news…...
云时代【5】—— LXC 与 容器
云时代【5】—— LXC 与 容器 三、LXC(一)基本介绍(二)相关 Linux 指令实战:使用 LXC 操作容器 四、Docker(一)删除、安装、配置(二)镜像仓库1. 分类2. 相关指令…...
npm digital envelope routines::unsupported
问题描述:npm运行命令报错:digital envelope routines::unsupported 原因:node版本过高 解决方案:在运行命令之前加上 SET NODE_OPTIONS--openssl-legacy-provider && SET NODE_OPTIONS--openssl-legacy-provider &&a…...
深入理解Flutter中的StreamSubscription和StreamController
在Flutter中,StreamSubscription和StreamController是处理异步数据流的重要工具。它们提供了一种方便的方式来处理来自异步事件源的数据。本文将深入探讨它们的区别以及在实际应用中的使用场景。 StreamSubscription StreamSubscription代表了对数据流的订阅&…...
聊聊 HTTP 性能优化
作为用户的我们在 "上网冲浪" 的时候总是希望快一点,尤其是抢演唱会门票的时候,但是现实并非如此,有时候我们会遇到页面加载缓慢、响应延迟的情况。 而 HTTP 协议作为互联网世界的基础,从网站打开速度到移动应用的响应…...
六、防御保护---防火墙内容安全篇
攻击可能只是一个点,防御需要全方面进行 DPI --- 深度包检测技术 --- 主要针对完整的数据包(数据包分片,分段需要重组),之后对 数据包的内容进行识别。(应用层) 1,基于“特征字”的…...
HC32F460 是否有 RTC?在电池供电方案中该如何使用?
[技术问答]HC32F460 是否有 RTC?在电池供电方案中该如何使用?_hc32f460 rtc-CSDN博客 华大HC32A460 系列介绍(三)_华大单片机内部温度传感器-CSDN博客 HC32F460PETB-LQFP100-华大半导体有限公司 [【HC32F460开发板测评】…...
HTML---表单验证
文章目录 目录 本章目标 一.表单验证概述 二.表单选择器 属性过滤选择器 三.表单验证 表单验证的方法 总结 本章目标 掌握String对象的用法会使用表单选择器的选择页面元素会使用JQuery事件进行表单验证Ajax的概念和作用 一.表单验证概述 前端中的表单验证是在用户提交表…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统
Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...
