c语言选择排序总结(详解)

选择排序cpp文件项目结构截图
在这里插入图片描述
项目cpp文件截图
在这里插入图片描述项目具体代码截图

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <string.h>
#include <time.h>
#include <sys/timeb.h>#define MAX 1000
// 获取当前系统的时间
long getSystemTime() {struct timeb tb;ftime(&tb);return tb.time * 1000 + tb.millitm;
}void PrintArray(int arr[], int length) {for (int i = 0; i < length; i++) {printf("%d ", arr[i]);}printf("\n");
}
void Swap(int* a, int* b) {int temp = *a;*a = *b;*b = temp;
}// 冒泡排序的算法
void BubbleSort(int arr[], int length) {int flag = 0;for (int i = 0; i < length && flag == 0; i++) {flag = 1; // 表示认为已经排序好了for (int j = length - 1; j > i; j--) {if (arr[j - 1] < arr[j]) {// 第二个数比第一个数小交换位置flag = 0;Swap(&arr[j - 1], &arr[j]);}}}}// 选择排序
void SelectSort(int arr[], int length) {// 选择排序减少交换次数for (int i = 0; i < length; i++) {int min = i;for (int j = i + 1; j < length; j++) {if (arr[j] < arr[min]) {min = j; // 修改下标}}if (min != i) {Swap(&arr[min], &arr[i]);}}}
int main(void)
{int arr[MAX];int arr2[MAX];srand((unsigned int)time(NULL));for (int i = 0; i < MAX; i++) {int randNum = rand() % MAX;arr[i] = randNum;arr2[i] = randNum;}//冒泡排序long bubbleelect_start = getSystemTime();BubbleSort(arr, MAX);long bubbleelect_end = getSystemTime();printf("冒泡排序%d个元素所需要的时间:%ld\n", MAX, bubbleelect_end - bubbleelect_start);//选择排序long tselect_start = getSystemTime();SelectSort(arr2, MAX);long teslect_end = getSystemTime();printf("选择排序%d个元素所需要的时间:%ld\n", MAX, teslect_end - tselect_start);return 0;
}

项目运行结果展示
在这里插入图片描述

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

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

相关文章

Java发展史

Java发展史 Java历史的几个重要节点&#xff1a; 1990&#xff0c;Sun公司启动了一个名为“绿色计划”的项目&#xff0c;由James Gosling等领导&#xff0c;目标是开发一种可以在机顶盒等消费性电子产品上运行的程序架构。这个计划产生了Java的前身&#xff1a;Oak&#xff…

Java八股文面试全套真题【含答案】-XML篇

XML 是什么&#xff1f;它的全称是什么&#xff1f; 答案&#xff1a;XML&#xff08;可扩展标记语言&#xff09;是一种用于描述数据的标记语言&#xff0c;用于存储和交换结构化的信息。XML 的全称是 eXtensible Markup Language。XML 和 HTML 有什么区别&#xff1f; 答案&a…

看图学源码 之 ConcurrentHashMap put、get、remove、clear、扩容等相关方法的源码分析

ConcurrentHashMap 引入 HashMap 的弊端 多线程下是不安全的&#xff0c;是有死循环的 JDK1.7 的时候会使用头插法将新的节点增加到头部&#xff0c;那么就会造成链表翻转成为了闭环&#xff0c;就是所谓的死循环。 JDK1.8之后使用的是尾插法&#xff0c;因此不会造成环形链…

京东数据运营:京东API接口有哪些?京东数据如何采集调用?

市场分析对于电商品牌来说非常重要&#xff0c;它可以帮助电商品牌更好地理解市场&#xff0c;把握市场机会&#xff0c;以及制定有效的产品定价、产品营销策略等等。 结合市场中可以帮助品牌方做市场分析的电商数据分析工具——鲸参谋电商数据分析平台&#xff0c;我们一起具体…

在Mac上安装Windows应用程序的简便方法:CrossOver for Mac

对于许多Mac用户来说&#xff0c;有时候他们可能需要使用一些只有在Windows上才能找到的应用程序。以前&#xff0c;解决这个问题的方法是通过安装Windows虚拟机或使用双系统来在Mac上运行Windows应用程序。但这些方法需要额外的硬件资源和时间来配置&#xff0c;并且可能会导致…

IOT安全学习路标

1. 物联网基础知识 首先&#xff0c;你需要建立坚实的物联网基础知识&#xff0c;包括IoT的架构和组件&#xff0c;传感器和设备的连接和通信技术&#xff0c;云端和边缘计算等。 2. 通信和网络安全 学习关于物联网通信和网络安全的基础知识&#xff0c;包括加密和认证技术、…

通俗解释一下“强静态类型”

我写软件已经有 20 多年了&#xff0c;随着时间的推移&#xff0c;我越来越确信强静态类型不仅是一个好主意&#xff0c;而且几乎总是正确的选择。 非类型化语言(或语言变体)肯定有用途&#xff0c;例如&#xff0c;当使用 REPL 时&#xff0c;或者在已经无可救药的无类型环境(…

有什么进销存软件能对接微信小程序?

有什么进销存软件能对接微信小程序&#xff1f; 据我所知&#xff0c;很多进销存软件都有配套的微信小程序吧。 以我们现在用的这个为例&#xff0c;这也是同行推荐过来的&#xff0c;很好用&#xff0c;而且性价比很高—— 在线平台&#xff0c;无需下载APP&#xff0c;搭载…

C语言实战演练之跳动的爱心C语言版

跳 动 的 爱 心 - LOVE - 完整程序 #include <stdio.h> #include <math.h> #include <windows.h> #include <tchar.h> float f(float x, float y, float z) {float a x * x 9.0f / 4.0f * y * y z * z - 1;return a * a * a - x * x * z * z …

ELK简单介绍一

任务背景 运维人员需要对系统和业务日志进行精准把控&#xff0c;便于分析系统和业务状态。日志分布在不同的服务器上&#xff0c;传统的使用传统的方法依次登录每台服务器查看日志&#xff0c;既繁琐又效率低下。所以我们需要集中化的日志管理工具将位于不同服务器上的日志收…

蓝桥杯日期问题

蓝桥杯其他真题点这里&#x1f448; 注意日期合法的判断 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class Main{static int[] days {0,31,28,31,30,31,30,31,31,30,31,30,31};static BufferedReader in new Buf…

【核心重点】Flink四大基石

1. Time&#xff08;时间机制&#xff09; 时间概念 处理时间&#xff1a;执行具体操作时的机器时间&#xff08;例如 Java的 System.currentTimeMillis()) &#xff09;事件时间&#xff1a;数据本身携带的时间&#xff0c;事件产生时的时间。摄入时间&#xff1a;数据进入 …

linux vim 基础设置-自动填充文件头

前言 当前为vimrc脚本设置&#xff0c;脚本位置在 ~/.vimrc or /etc/vimrc 当前为首次打开 C C Shell 文件&#xff0c;自动填充对应文件头信息&#xff0c;再次打开时会修改对应时间信息 :set nu "显示行号 :set hlsearch "搜索时 高亮"新建 .c .cpp .sh文件&a…

理解Go语言中的defer

引言 Go有许多在其他编程语言中可以找到的常见控制流关键字,例如if、switch、for等。defer是其他大多数编程语言中没有的关键字,尽管它不太常见,但你很快就会看到它在你的程序中有多么有用。 defer语句的主要用途之一是清理资源,例如打开的文件,网络连接和数据库句柄。在…

在AWS Lambda上部署EC2编译的FFmpeg工具——自定义层的方案

大纲 1 确定Lambda运行时环境1.1 Lambda系统、镜像、内核版本1.2 运行时1.2.1 Python1.2.2 Java 2 环境准备2.1 创建EC2实例 3 编译FFmpeg3.1 连接EC2 4 编译5 上传S3存储桶5.1 创建S3桶5.2 创建IAM策略5.3 创建IAM角色5.4 EC2关联角色5.5 修改桶策略5.6 打包并上传 6 创建Lamb…

智能优化算法应用:基于海鸥算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于海鸥算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于海鸥算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.海鸥算法4.实验参数设定5.算法结果6.参考文献7.MA…

【nuxt3】cannot read preperties of null (reading ‘$nuxt‘)

问题描述 vue3 中&#xff0c;通过 createVNode 创建子组件实例时&#xff0c;发现子组件无法获取到父组件中的 router、store 信息&#xff0c;一旦子组件使用就会报错。 问题原因 通过控制台断点调试&#xff0c;发现时 appContext 值为空导致的。怀疑是创建子组件的时候&a…

海外地区开启IPV6无法访问服务器问题

前言 最近有海外地区的用户反馈无法访问公司的网络&#xff0c;无法下载应用和系统进行升级。了解到浏览器可以正常访问公司域名&#xff0c;谷歌&#xff0c;油管等都能正常使用。日志分析GET请求服务器数据时没有得到应答&#xff0c;最终查询网络相关修改确认与网络IPV6有关…

掌握游戏开发的全方位知识:这些内容你一定要知道

游戏开发是一项涉及多学科的综合性工作&#xff0c;从游戏设计到编程、美术、音频、测试等多个方面都需要开发者具备广泛的知识。以下是进行游戏开发时需要掌握的主要知识领域。 首先&#xff0c;游戏设计是整个过程的基石。这包括游戏机制和玩法设计、关卡设计、用户界面&…

表示你的shell未被正确配置以使用conda activate--换成清华源anaconda

1 CommandNotFoundError: Your shell has not been properly configured to use conda activate. If using conda activate from a batch script, change your invocation to CALL conda.bat activate.To initialize your shell, run$ conda init <SHELL_NAME>这个错误提…