冒泡排序和选择排序算法的实现

简单排序算法:冒泡排序,选择排序和插入排序的c++实现 所有代码的实现采用了模板类,如果对模板类不熟悉,可以把T换成 int 一、冒泡排序 冒泡排序的思想:相邻元素两两比较,如果逆序则交换 冒泡排序的实现思路:i 从数组的第二个下标开始循环(即以下标为1开始),每次从最后一个元素开始,依次与前一个元素对比交换,每循环一次,则前i个元素为有序的。 优点:冒泡排序在无下标的几个元素排序时,比其他排序算法更直接(比如三个数,找出其中中间大小的 阅读详情

一 选择排序:

  选择排序的工作原理是从 待排序的元素中选出最小或者最大的一个元素,存放在序列的起始位置,直到全部待排序的元素排完。这是一种不稳定的排序方法。比冒泡排序快。

二 冒泡排序:

  冒泡排序重复访问要排序的元素,依次比较两个相邻的元素。如果前一个元素大于后一个,或者小于,就把它们交换过来。重复的进行直到没有相邻元素需要交换,说明冒泡排序已经完成。时间复杂度为o(n2)。

以下是代码实现(c++):

#include <iostream>

using namespace std;

//选择排序
void selectSort(int (&a)[10])
{
	for (int i = 0; i < 10; i++)
	{
		//从下一个数开始
		for (int j = i + 1; j < 10; j++)
		{
			//交换
			if (a[i]>a[j])
			{
				int temp = a[i];
				a[i] = a[j];
				a[j] = temp;
			}
		}
	}

}

//冒泡排序
void bubbleSort(int(&a)[10])
{
	for (int i = 0; i < 10;i++)
	{
		for (int j = 0; j < 10 - i - 1;j++)
		{
			//交换
			if (a[j]>a[j + 1])
			{
				int temp = a[j];
				a[j] = a[j+1];
				a[j+1] = temp;
			}

		}
	}

}

//主函数
int main()
{
	int array[10] = {10,8,6,19,3,41,4,7,98,1};
	cout << "排序前:";
	for (int i = 0; i < sizeof(array) / sizeof(array[0]); i++)
	{
		cout << array[i] << " ";
	}

	//selectSort(array);
	bubbleSort(array);

	cout << "排序后:";
	for (int i = 0; i < sizeof(array) / sizeof(array[0]); i++)
	{
		cout << array[i] << " ";
	}


	return 0;
}
Visual Studio调试时遇到ntdll.dll的PDB文件缺失?别慌,这3个方法帮你搞定(附详细步骤) 本文详细解析了Visual Studio调试时ntdll.dll的PDB文件缺失问题,提供了3种实用解决方案:调整调试设置、配置符号服务器与缓存目录、手动下载管理符号文件。通过分步指导和高级技巧,帮助开发者快速恢复完整的调试功能,特别适用于Windows平台下的C++项目开发。 阅读详情

相关推荐

Openwifi 开源项目解读(一)

Openwifi wifi 80211 无线网卡 基带 FPGA linux 驱动 开源

2万+

c++排序函数对二维数组排序_C语言——调用函数进行数组排序

使用函数实现选择和冒泡排序:分别定义选择排序函数void selectsort(int a[],int n) 和冒泡排序函数viod bubblesort(int a[],int n)对数组a中的元素进行排序,主函数中输入数组元素和元素个数,先调用选择排序函数对数组元素升序排序后输出结果,然后再调用冒泡排序对数组元素降序排序并输出结果68 -3 2 7 9 4-3 2 4 7 8 99 8 7 4...

weixin_39674028的博客 898

Appsflyer S2S事件上报实战:从参数获取到避坑指南(附Firebase对比)

本文详细解析了Appsflyer S2S事件上报的实战技巧,包括核心参数获取、测试环境搭建、生产环境最佳实践以及高级场景处理。通过对比Firebase的事件上报机制,帮助开发者高效避坑并优化数据上报流程,提升应用分析与营销效果。

egg99的博客 884

学习笔记——数组排序:选择,冒泡

一、排序 1、排序的目的:把数组中的各个元素按照从小到大或者从大到小的顺序排列(也有可能是 别的顺序),排序后的结果保存在同一个数组中。 例如:2 7 9 5 1 从小到大排序后的结果是 1 2 5 7 9 2、排序的方法:选择排序法、冒泡排序法、… 二、选择排序法 1. 第一轮从 a[0]~a[n-1]中找到最小值,与 a[0]交换值,把最小值放在 a[0]的位置 第二轮从 a[1]~a[n-1]中找出最小值,与 a[1]交换值,把最小值放在 a[1]的位置 … 最后一轮从

lin_cycle的博客 3025

Unity 2D精灵点击交互实现:从BoxCollider 2D到Event Trigger的完整指南

本文提供了Unity 2D精灵点击交互的完整实现指南。通过详细拆解BoxCollider 2D与Event Trigger两大核心组件的协同工作原理,手把手教你为Sprite Renderer添加点击、悬停等事件响应。文章包含从基础配置到进阶优化、性能调试的实战步骤,帮助开发者高效实现游戏世界内的对象交互,是Unity 2D开发的实用教程。

ansible6ops的博客 301

RK3588开发板RKNPU2环境部署实战:更新rknn_server与librknnrt.so详解

本文详细介绍了在RK3588开发板上更新rknn_server与librknnrt.so核心组件的完整实战流程。通过adb工具推送文件、设置权限并执行同步操作,确保RKNPU2环境部署成功,从而解决推理速度慢或初始化失败等问题,提升AI模型运行效率与稳定性。

weixin_29194817的博客 340

函数调用,选择排序

#include<stdio.h> #include<math.h> #include<string.h> int main() { void selectsort(int a[],int n); int a[10],n; printf("请输入十个数:");//45 2 9 0 -3 54 12 5 66 33 for (int i = 0; i < 10; i++) { scanf_s("%d", &a[i...

weixin_51172308的博客 876

国产平替NeuroSky?实测金牛座TGAM脑电模块,从Arduino到Python的完整数据采集指南

本文详细介绍了国产金牛座TGAM脑电模块的完整使用流程,包括硬件连接、数据采集和Python分析。通过Arduino和Python的实战案例,展示了如何从脑电波传感器获取并解析专注度、放松度等数据,适用于专注力训练和脑机接口开发。

weixin_30735745的博客 575

选择排序 冒泡排序 C语言实现

选择排序 冒泡排序 代码在此: #include #define SIZE 100 void BubbleSort (int a[], int n) { //冒泡排序 int i,j; int temp; for(i = 0; i < n-1; i ++){ for(j = n-1; j > i; j --){ if(a[j] < a[j-1]){

zhencan的博客 693

【原理图PCB专题】Cadence17.4 PCB位号重排与反标

Cadence17.4 PCB位号重排与反标比Cadence16版本更简单一些,那到底如何操作?

一点硬件 1181

RK3588 ENV 环境配置之 fw_printenv

RK3588 ENV环境配置指南 本文详细介绍了在RK3588平台上配置ENV环境变量的完整流程。首先需要在parameter分区表中划分env分区,然后在U-Boot中配置MMC偏移地址。接着编译fw_printenv工具并部署到目标设备,配置fw_env.config文件指定存储位置。重点解决了内核中读写ENV时遇到的CRC校验问题,通过U-Boot的saveenv命令初始化环境变量存储区域。最后展示了如何使用fw_printenv/fw_setenv工具在内核中读写ENV变量,并建议将配置集成到根文件

501846585_QQAndroid_java 1031

选择法与冒泡法排序

简单的冒泡法与与选择法实现,流程图。

weixin_55644008的博客 523

【人工智能的数学基础】最优传输(Optimal Transport)问题与Wasserstein距离

代表两堆石子,则问题等价于如何移动一堆石子,通过最小的累积移动距离把它堆成另外一堆石子。的不同位置分配的值。为离散型概率分布,则该优化问题可以表示为矩阵形式。表示寻找总运输成本最小的方案。放大后的上确界不会小于原来的上确界,因此不妨取。具有相同的概率分布。是概率分布,因此积分可以写作采样形式。描述了一种可行的运输方案,表示应该从位置。则最优传输问题的目标函数可以用列向量。对于一个线性规划问题,总可以写出其。的所有可能联合分布的集合,下确界。其中矩阵的每一行代表概率分布。表示寻找使得目标函数最大的。

AI天才研究院 6328

C++篇——C++实现冒泡排序和选择排序算法

C++篇——C++实现冒泡排序和选择排序算法摘要冒泡法代码运行结果选择排序法代码运行结果 摘要 本文通过C++实现了两类基础且经典的排序算法(冒泡法和选择排序法)。 冒泡法 代码 #include <iostream> using namespace std; int main() { /** 需要排序的数组 */ double array[] = {5.8,2.3,4.9,10.8,-50.2,20.4,19.5,23.8,10.9,100.2}; /** 数组的

Cyrus_May的博客 3333

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

直接选择排序算法和冒泡排序算法的介绍及实现

(1)直接选择排序(VS2013) 直接选择排序是一种比较简单的排序方法,它的排序过程为:先从待排序的所有记录中选出关键字最小的记录,把它与原始序列中的第一个记录交换位置;然后再从去掉了关键字最小的记录的剩余记录中选出关键字最小的记录,把它与原始序列中第二个记录交换位置;以此类推,直至所有记录成为有序序列。 实现代码如下: #include "stdafx.h" #includ

lfeng_coding的博客 734

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

排序算法【java实现】(二)冒泡排序和简单选择排序

冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 冒泡排序算法的运作如下:(从后往前) 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元

灵思哑舍 314

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

冒泡排序算法和选择排序算法实现

以上就是所有内容,如有错误或不足,欢迎大家不吝赐教。今天对冒泡排序算法和选择排序进行复盘,以期查漏补缺。

alwaysandnever的博客 608

(九)数据结构之简单排序算法实现:冒泡排序、插入排序和选择排序

1、冒泡排序 /* 冒泡排序,按照由小到大顺序进行排序 */ void Bubble_Sort( ElementType A[], int N ) { int P, i; int flag = 0; /* 定义一个flag来判断带排序序列是否有序或局部有序,提高算法效率 */ for ( P=N-1; P>=0; P-- ) { flag = 0; for( i=0; i<P;

TECH_PRO的博客 1407

冒泡排序算法和简单选择排序算法的js实现

之前已经介绍过冒泡排序算法和简单选择排序算法和原理,现在有Js实现。 冒泡排序算法 let dat=[5, 8, 10, 3, 2, 18, 17, 9]; function bubbleSort(data) { for(let i=0;i<data.length-1;i++){ for(let j=...

weixin_30566111的博客 136

排序算法:冒泡排序、选择排序和快速排序 —— Python 实现

1. 冒泡排序 Python 实现: import time import random def bubbleSort(alist): for i in range(len(alist)): for j in range(len(alist)-1, i, -1): if alist[j] < alist[j-1]: temp = alist[j] alist[j] = alist[j-1] alist[j-1] = temp a = [random.rando

我有两颗糖 521

常见排序算法原理及实现——第一部分(冒泡排序、插入排序和选择排序)

常见排序算法原理及实现——第一部分(冒泡排序、插入排序和选择排序)

weixin_46935110的博客 809

python 实现排序算法(三)-选择排序和冒泡排序

1 #/usr/bin/env python 2 #coding:utf-8 3 #@auther="livermorium" 4 ''' 5 选择排序 6 从数据中选择最小值,排在位置首位 7 再从剩余未排序数据中选择最小值 8 ''' 9 ''' 10 冒泡排序法 11 比较是相邻的两个元素比较,把较大或较小的排在前面,这样经过一轮就可以把较大或较小的...

weixin_30699443的博客 125

数据结构与算法_排序算法_快速排序算法、冒泡排序算法和选择排序算法_JAVA实现

2020.05.15 快速排序算法、冒泡排序算法和选择排序算法

loveloose的博客 415

java中冒泡排序和选择排序_java实现排序算法:插入排序、选择排序、冒泡排序详解...

package sort;/*** @author lei 2011-8-17*/public class Sort {/*** 选择排序:* 首先在数组中查找最小值, 如果该值不在第一个位置, 那么将其和处在第一个位置的元素交换,然后从第二个位置重复* 此过程,将剩下元素中最小值交换到第二个位置 。当到最后一位 时,数组排序结束* 复杂度为:O(n^2)** @param array*/stat...

weixin_35782148的博客 164

四、Golang学习笔记:go实现冒泡排序算法和选择排序算法

Golang实现两种排序算法 文章目录Golang实现两种排序算法冒泡排序选择排序 冒泡排序 排序:将一组数据按指定顺序排序 func main(){ //排序比较的过程 // s := []int{9 8 7 6 5 4 3 2 1 0} //第一趟: 8 7 6 5 4 3 2 1 0 9 交换了9次 i=0 j=len(s)-1-i i是趟数,j是交换次数 //第二趟: 7 6 5 4 3 2 1 0 8 9 交换了8次 i=1 j=len(s)-1-i /.

qq_43759853的博客 197
上一篇: python中for循环常用方法
下一篇: linux下udp编程实现接收和发送图片文件
Qt上位机开发
Qt上位机开发 领域专家: C/C++技术领域 领域专家: C/C++技术领域
博客等级 码龄9年 9664粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值