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.hqwc.cn/news/263548.html

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

相关文章

【C++】输入输出流 ⑥ ( cout 标准输出流对象 | cout 常用 api 简介 | cout.put(char c) 函数 )

文章目录 一、cout 标准输出流对象1、cout 标准输出流对象简介2、cout 常用 api 简介 二、cout.put(char c) 函数1、cout.put(char c) 函数 简介2、代码示例 - cout.put(char c) 函数 一、cout 标准输出流对象 1、cout 标准输出流对象简介 cout 是 标准输出流 对象 , 是 ostrea…

C++初阶(十四)list

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、 list的介绍二、list的模拟实现1、list的节点2、list 的迭代器3、list4、打印5、完整代码…

Doocker还原容器启动命令参数

get_command_4_run_container可以还原docker执行命令, 这是个第三方包&#xff0c;需要先安装&#xff1a; docker pull cucker/get_command_4_run_container 命令格式&#xff1a; docker run --rm -v /var/run/docker.sock:/var/run/docker.sock cucker/get_command_4_run…

Linux中的SNAT与DNAT实践

Linux中的SNAT与DNAT实践 1、SNAT的介绍1.1&#xff0c;SNAT概述1.2&#xff0c;SNAT源地址转换过程1.3&#xff0c;SNAT转换 2、DNAT的介绍2.1&#xff0c;DNAT概述2.2&#xff0c;DNAT转换前提条件2.3&#xff0c;DNAT的转换 3、防火墙规则的备份和还原4、tcpdump抓包工具的运…

ubuntu16.04升级openssl

Ubuntu16.04 默认带的openssl版本为1.0.2 查看&#xff1a;openssl version 1.下载openssl wget https://www.openssl.org/source/openssl-1.1.1.tar.gz 编译安装 tar xvf openssl-1.1.1.tar.gz cd openssl-1.1.1 ./config make sudo make install sudo ldconfig 删除旧版本 su…

【git教程】

目录 git与SVN的区别&#xff1a;集中式与分布式的区别Windows上安装Git创建版本库/仓库&#xff08;repository&#xff09;将文件添加到repository报错处理 查看仓库的状态版本回退工作区和暂存区管理和修改撤销修改删除文件远程仓库添加远程仓库警告解除本地和远程的绑定关系…

【数电笔记】58-同步D触发器

目录 说明&#xff1a; 1. 电路组成 2. 逻辑功能 3. 特性表、特性方程 4. 状态转移图 例题 5. 同步D触发器的特点 6. 集成同步D触发器&#xff1a;74LS375 74LS375内部原理 说明&#xff1a; 笔记配套视频来源&#xff1a;B站本系列笔记并未记录所有章节&#xff0c;…

基于SSM的点餐系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

2024年法定节假日 法定上班日 工作日 休息日一览表

2024年法定节假日 法定上班日 工作日 休息日一览表 第一列&#xff1a;日期&#xff0c; 第二列&#xff1a;星期几&#xff0c; 第三列&#xff1a;枚举值2个&#xff0c;只有休息日或工作日&#xff0c; 第四列&#xff1a;枚举值4个&#xff1a;法定节假日&#xff0c;法…

Mybatis源码解析1:环境搭建

Mybatis源码解析1&#xff1a;环境搭建 1.项目结构2.pom.xml3.table.sql4. mybatis-config5.Blog6.BlogMapper7.BlogMapper.xml8.MyInterceptor9. InterceptorTest 1.项目结构 github老是打不开&#xff0c;直接贴代码吧 2.pom.xml <?xml version"1.0" encod…

GEE影像升尺度(10m->250m)

GEE影像升尺度&#xff08;10m->250m&#xff09; 代码 var ext /* color: #d63000 *//* shown: false *//* displayProperties: [{"type": "rectangle"}] */ee.Geometry.Polygon([[[108.74625980473367, 28.562445155322063],[108.74625980473367, …

Nginx按指定格式记录访问日志以及利用logrotate做日志轮转

今天突然想起来一个日志的一个东西,因为拉项目无意中看到了日志文件的一些东西,现在不经常做后端了,加上其他的一些原因吧.有时候有些问题也没想太多,马马虎虎就过了,后来想想还是要记录一下这方面的处理过程吧: 一般我们作为开发人员关注的日志只是在应用程序层面的,我们称它…