当前位置: 首页 > news >正文

三种基本排序-冒泡,选择,二分

闲话不多说,直接上代码,简明易懂,条理清晰,交互性强,尽善尽美

码住,建议copy下来:

先上二分法吧,稍复杂点的,代码多一些,用了函数调用

二分排序:

#include <iostream>
using namespace std;// 二分法查找插入位置
int binarysearch(int arr[], int low, int high, int key) {if (high <= low)return (key > arr[low]) ? (low + 1) : low;int mid = (low + high) / 2;if (key == arr[mid])return mid + 1;if (key > arr[mid])return binarysearch(arr, mid + 1, high, key);return binarysearch(arr, low, mid - 1, key);
}// 二分法插入排序
void binary(int arr[], int n) {int i, loc, j, selected;for (i = 1; i < n; ++i) {j = i - 1;selected = arr[i];// 查找插入位置loc = binarysearch(arr, 0, j, selected);// 移动元素以便插入while (j >= loc) {arr[j + 1] = arr[j];j--;}arr[j + 1] = selected;}
}int main() {int i, num;cout << "输入你要排序的数字数量(100以内):\n";cin >> num;int a[100] = {0};cout << "好的,现在我们将为" << num << "个数字排序,请逐个输入:\n";for (i = 0; i < num; i++) {cin >> a[i];}binary(a, num);cout << "排序后的结果为:\n";for (i = 0; i < num; i++) {cout << a[i] << " ";}cout << endl;return 0;
}

 选择排序:

#include<iostream>
using namespace std;
int main()
{  //首先定义数组,循环输入数字int i,j,t,num;int a[100]={0};         //定义变量cout<<"输入你要为多少个数字排序(100以内):\n";cin>>num;               //个数限定cout<<"好的,我们如今将为"<<num<<"个数字排序,请依次输入:\n";for(i=0;i<num;i++){cin>>a[i];          //循环输入}for(i=0;i<num;i++){for(j=i+1;j<num;j++){if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}}}                       //每次决出第一个数for(i=0;i<num;i++)cout<<a[i]<<"  ";   //循环输出return 0;
}

冒泡排序:

#include<iostream>
using namespace std;
int main()
{int i,j,t,num;int a[100]={0};         //定义变量cout<<"输入你要为多少个数字排序(100以内):\n";cin>>num;               //个数限定cout<<"好的,我们如今将为"<<num<<"个数字排序,请依次输入:\n";for(i=0;i<num;i++){cin>>a[i];          //循环输入}for(j=1;j<num;j++){for(i=0;i<num-j;i++){     //反复修正第二个条件if(a[i]>a[i+1]){      //谨防此处越界t=a[i];a[i]=a[i+1];a[i+1]=t;}}}                       //冒泡实现,我是先写内循环,再外循环修整for(i=0;i<num;i++)cout<<a[i]<<"  ";   //循环输出return 0;
}

相关文章:

三种基本排序-冒泡,选择,二分

闲话不多说&#xff0c;直接上代码&#xff0c;简明易懂&#xff0c;条理清晰&#xff0c;交互性强&#xff0c;尽善尽美 码住&#xff0c;建议copy下来&#xff1a; 先上二分法吧&#xff0c;稍复杂点的&#xff0c;代码多一些&#xff0c;用了函数调用 二分排序&#xff1…...

windows查找重复的物理地址

单独查询所有物理&#xff08;mac&#xff09;地址&#xff08;cmd执行&#xff09;&#xff1a;arp -a 查找同一局域网下重复的mac&#xff0c;打开power shell执行以下命令&#xff1a; Get-NetNeighbor | Where-Object { $_.State -eq "Reachable" } | Select-O…...

linux进阶高级配置,你需要知道的有哪些(8)-shell脚本应用(三)

1、for循环语句的结构&#xff1a; for 变量名 in 取值列表 do 命令序列 done 2、while循环语句结构&#xff1a; while 条件测试 do 命令序列 done 3、for和while的区别 for:控制循环来自于取值列表 while&#xff1a;控制循环来自于条件测试 4、case语句的…...

安全测试|常见SQL注入攻击方式、影响及预防

SQL注入 什么是SQL注入&#xff1f; SQL注入是比较常见的网络攻击方式之一&#xff0c;主要攻击对象是数据库&#xff0c;针对程序员编写时的疏忽&#xff0c;通过SQL语句&#xff0c;实现无账号登录&#xff0c;篡改数据库。 SQL注入简单来说就是通过在表单中填写包含SQL关键…...

【Git】Git在Gitee上的基本操作指南

文章目录 1. 查看 git 版本2. 从Gitee克隆仓库&#xff1a;3. 复制文件到工作目录&#xff1a;4. 将未跟踪的文件添加到暂存区&#xff1a;5. 在本地提交更改&#xff1a;6. 将更改推送到远程仓库&#xff08;Gitee&#xff09;&#xff1a;7. Windows特定提示&#xff1a; 1. …...

国债期货怎么买?十年国债交易手册

国债&#xff0c;简单来说&#xff0c;就是国家为了筹集资金而向大众借钱的一种方式。国家通过发行债券&#xff0c;向投资者承诺在约定的时间里支付利息&#xff0c;并在到期时归还本金。因为是国家发行的&#xff0c;所以国债的信用等级非常高&#xff0c;通常被认为是非常安…...

公司申请增加公众号数量

一般可以申请多少个公众号&#xff1f;众所周知&#xff0c;在2013年前后&#xff0c;公众号申请是不限制数量的&#xff0c;后来企业开始限制申请50个&#xff0c;直到2018年的11月tx又发布&#xff0c;其中个人主体可申请公众号由2个调整为1个&#xff0c;企业主体由50个调整…...

什么是.faust勒索病毒?应该如何防御?

faust勒索病毒详细介绍 faust勒索病毒是一种新型的勒索软件&#xff0c;最早出现在2018年。该病毒通过加密计算机系统中的文件并要求支付赎金来解锁文件&#xff0c;从而获取经济利益。与传统的勒索软件相比&#xff0c;faust勒索病毒采用了更加先进的加密算法和隐藏技术&#…...

邓闲小——生存、生活、生命|真北写作

人生有三个层次∶生存、生活、生命。 生存就是做必须做的事。生存的模式是邓&#xff0c;是交易&#xff0c;是买卖。别人需要的东西&#xff0c;你生产出来&#xff0c;卖给他。哪怕这个东西没啥用&#xff0c;也可以卖&#xff0c;情绪也可以卖。你需要的东西&#xff0c;你花…...

品牌舆情都包含什么内容?建议收藏

一个品牌的声誉、形象、产品质量、服务质量等&#xff0c;无时无刻不在接受着大众的检验。互联网传播迅速&#xff0c;一个不好的舆论直接导致整个品牌的声誉受到严重影响。品牌舆情都包含什么内容&#xff1f;接下来伯乐网络传媒就来给大家讲一讲。 一、品牌舆情的基本构成 1…...

MQTT 5.0 报文解析 04:PINGREQ 与 PINGRESP

欢迎阅读 MQTT 5.0 报文系列 的第四篇文章。在上一篇中&#xff0c;我们已经介绍了 MQTT 5.0 中的 SUBSCRIBE 报文和 UNSUBSCRIBE 报文。现在&#xff0c;我们将介绍用于维持连接的控制报文&#xff1a;PINGREQ 和 PINGRESP。 除了用于连接、发布和订阅的控制报文&#xff0c;…...

【算法刨析】完全背包

完全背包与01背包的区别 01背包对于一个物品只能选择一次&#xff0c;但是完全背包可以选择任意次&#xff1b; 思路 和01背包类似&#xff0c;01背包我们只需要判断选或不选&#xff0c;完全背包也是如此&#xff0c;不同的是&#xff0c;对于这个物品我们在判断选后在增加一…...

notepad++

文章目录 换行 换行 根据需要选择是否要自动换行或者一行展示。 点击视图 选中或者取消选中自动换行...

Python ValueError: bad transparency mask

修改前 修复后 运行正常 from PIL import Image# 读取图片 #报错信息解决ValueError: bad transparency mask--相关文档地址https://blog.csdn.net/kalath_aiur/article/details/103945309 #1. 检查 alpha 通道是否是一个有效的掩码。如果不是&#xff0c;则需要对 alpha 通道…...

Linux本地部署Nightingale夜莺监控并实现远程访问提高运维效率

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

开关电源功率测试方法:输入、输出功率测试步骤

在现代电子设备中&#xff0c;开关电源扮演着至关重要的角色&#xff0c;其效率和稳定性直接影响到整个系统的性能。因此&#xff0c;对开关电源进行功率测试成为了电源管理的重要环节。本文将详细介绍如何使用DC-DC电源模块测试系统对开关电源的输入输出功率进行准确测量&…...

QT 文字转语言插件

1.在工程.pro文件中添加 QT texttospeech 2.在头文件中添加 #include <QTextToSpeech> 3.使用的方法 QString str"欢迎使用智慧教育学习平台";QTextToSpeech *Speechernew QTextToSpeech;const QVector<QVoice> voices Speecher->availableV…...

Kubernetes(k8s)的认证(Authentication)策略解析

Kubernetes&#xff08;k8s&#xff09;的认证&#xff08;Authentication&#xff09;策略是确保只有经过验证的实体&#xff08;用户、服务账户等&#xff09;能够访问API服务器的基础安全措施。Kubernetes支持多种认证方法&#xff0c;以下是主要的认证策略&#xff1a; X50…...

Scikit-Learn决策树

Scikit-Learn决策树 1、决策树分类2、Scikit-Learn决策树分类2.1、Scikit-Learn决策树API2.2、Scikit-Learn决策树初体验2.3、Scikit-Learn决策树实践&#xff08;葡萄酒分类&#xff09; 1、决策树分类 2、Scikit-Learn决策树分类 2.1、Scikit-Learn决策树API 官方文档&#…...

Python面试题【python基础部分1-50】

Python面试题【python基础部分1-50】 Python面试题【python基础部分1-50】 Python面试题【python基础部分1-50】 问题&#xff1a;如何在Python中交换两个变量的值&#xff1f; 答案&#xff1a; a, b b, a问题&#xff1a;Python中的列表和元组有什么区别&#xff1f; 答案&…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

边缘计算网关提升水产养殖尾水处理的远程运维效率

一、项目背景 随着水产养殖行业的快速发展&#xff0c;养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下&#xff0c;而且难以实现精准监控和管理。为了提升尾水处理的效果和效率&#xff0c;同时降低人力成本&#xff0c;某大型水产养殖企业决定…...

GraphRAG优化新思路-开源的ROGRAG框架

目前的如微软开源的GraphRAG的工作流程都较为复杂&#xff0c;难以孤立地评估各个组件的贡献&#xff0c;传统的检索方法在处理复杂推理任务时可能不够有效&#xff0c;特别是在需要理解实体间关系或多跳知识的情况下。先说结论&#xff0c;看完后感觉这个框架性能上不会比Grap…...

EEG-fNIRS联合成像在跨频率耦合研究中的创新应用

摘要 神经影像技术对医学科学产生了深远的影响&#xff0c;推动了许多神经系统疾病研究的进展并改善了其诊断方法。在此背景下&#xff0c;基于神经血管耦合现象的多模态神经影像方法&#xff0c;通过融合各自优势来提供有关大脑皮层神经活动的互补信息。在这里&#xff0c;本研…...

iOS 项目怎么构建稳定性保障机制?一次系统性防错经验分享(含 KeyMob 工具应用)

崩溃、内存飙升、后台任务未释放、页面卡顿、日志丢失——稳定性问题&#xff0c;不一定会立刻崩&#xff0c;但一旦积累&#xff0c;就是“上线后救不回来的代价”。 稳定性保障不是某个工具的功能&#xff0c;而是一套贯穿开发、测试、上线全流程的“观测分析防范”机制。 …...