冒泡排序算法优化

冒泡排序算法及其优化 冒泡排序算是排序算法里面的一种较为简单的算法,也是我接触的第一种排序算法,有升序与降序之分,如果面试的时候面试官问道这个题目,一定要问清楚是升序还是降序,这样会给你加分。 下面,我以升序来讲一下它的运作。 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 阅读详情

  当出现{10,8,9,15,28,39}这样的序列时,只需要一次排序过程就能完成从小到大的排序。

即第一次排序后序列变为{8,9,10,15,28,39}。虽然已经完成排序,但还是会走完接下来的排序判断过程,

这将造成效率的下降。通过对冒泡排序进行改进,在判断排序已经完成后,即跳出循环,可以解决效率问题。

//冒泡排序改进版
void bubbleSortModify(int(&a)[10])
{
	for (int i = 0; i < 10; i++)
	{
		bool flag = false;
		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;
				flag = true;
			}

		}
		if (flag == false)
		{
			return;
		}
	}

}

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

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


	return 0;
}

 

冒泡排序及三种优化方式代码 此资源是本人演示冒泡排序及其优化方案的示例代码,欢迎大家下载。关于冒泡排序的介绍,也可以参考本人博文https://blog.youkuaiyun.com/Abel_Liujinquan/article/details/88880483 立即下载

相关推荐

冒泡排序优化算法

冒泡排序的优化算法,提高了效率int main(){ int a, m; cin>>m; int *p; p = new int[m]; for(int i=0;i<m;i++) cin>>p[i]; int temp; for(int i=0;i<=m-2;i++){ a = true; for(int j=m-2;j>=i;j--) if(p[j+1]<p[j]) { temp = p[j+1]; p[j+1] = p[j]; p[j] = temp; a = false; } if(a) break; } for(int i=0;i<m;i++) cout<<p[i]; delete[]p; system("pause"); }

排序算法:冒泡排序及优化

冒泡排序算法详解以及对冒泡排序算法进行两个优化

doublecircle1的博客 2830

华为昇腾310P3+deepseek蒸馏版性能调优:FP16精度优化全记录

本文详细介绍了在华为昇腾310P3硬件环境下优化DeepSeek蒸馏版模型FP16精度的关键技术路径。通过分层量化策略、内存分配优化和并行计算配置,显著提升模型推理性能,实现83%的并发处理能力提升,同时保持98.7%的原始模型准确率。

weixin_29074409的博客 345

冒泡排序算法以及优化

什么是冒泡排序呢?冒泡排序的英语名是Bubble Sort,是一种最基础的交换排序。 大家一定都喝过汽水吧,汽水中常常有许多小小的气泡,往上飘,这是因为组成小气泡的二氧化碳比水要轻,所以小气泡才会一点一点的向上浮。而冒泡排序之所以叫冒泡排序,正是因为这种排序算法的每一个元素都可以向小气泡一样,根据自身大小,一点一点向着数组的一侧移动。具体如何移动呢?我们来看一下例子: 有8个数组组成一个无序数列:5,8,6,3,9,2,1,7,希望从大到小排序。按照冒泡排序的思想,我们要把相邻的元素两两进行比较,根据大小

被一个OIER遗弃的一堆烂代码 1933

Mid-360与FAST-LIO2实战:从点云采集到高精度建图全流程解析

本文详细解析了使用Livox Mid-360激光雷达与FAST-LIO2算法实现高精度实时建图的全流程。内容涵盖硬件准备、软件环境搭建、算法部署配置、数据采集实战,并重点探讨了多楼层场景下的参数调优与误差抑制策略,为机器人及无人机三维感知应用提供了实用指南。

prometheus9mon的博客 413

计算机视觉——多视图几何

多视图几何1.前言1.1 多视图几何概念2. 基本原理2.1 对极几何2.2 基础矩阵2.2.1 基础矩阵推导2.2.2 求解基础矩阵3. 实验过程3.1 实验数据准备3.2 实验代码3.3 实验结果及分析4. 实验中遇到的问题 1.前言 1.1 多视图几何概念 多视图几何是利用在不同视点所拍摄图像间的关系,来研究照相机之间或者特征之间关系的一门科学。 多视图几何(Multiple View ...

RuiMa的博客 7715

经典排序算法——冒泡排序及其优化(python代码实现)

冒泡排序是排序算法中非常经典的一种交换排序算法,思想比较简单,容易理解和实现,一般是初学者最早接触的一种排序算法。 之所以称之为冒泡排序,就是因为在排序的过程中,像汽水冒泡一样,元素会逐渐一步一步的上浮到最顶端(最后)。 通过一趟趟地比较,每一趟确定一个剩余待排元素中的最大或最小元素,直到所有元素有序。具体来说,在每一趟排序中,元素两两比较,从起始位置开始,当前元素与后一个元素比较,若这两个元素符合有序,则忽略并后移一个元素继续向后比较,若不符合则先交换元素,然后后移一个元素继续

记录知识,学习分享 6116

用ST25DV芯片+KiCad快速设计NFC标签天线:参数计算/脚本生成/实测优化全流程

本文详细介绍了使用ST25DV芯片和KiCad工具设计NFC标签天线的全流程,包括参数计算、脚本生成和实测优化。通过解析芯片等效工作原理和设计思路,帮助开发者避开常见陷阱,实现高效、可量产的天线设计。文章还提供了Python计算工具和KiCad自动化脚本,大幅提升设计效率和成功率。

jj890的博客 757

关于冒泡排序算法优化

最普通的冒泡排序算法 function bubbleSort($arr){ $size = count($arr)-1; for ($i = 0;$i <= $size ; $i++){ for ($j = $size-1;$j >= $i;$j--){ if ($arr[$j] > $arr[$j+1]){ $tmp = $arr[$j]; $...

PHPerJiang 195

matlab实现MSK调制解调

文章目录一、要求二、设计三、代码四、结果五、结论 一、要求 画出MSK信号产生的信息、I路、Q路信号对比图以及接收端解调的信息恢复的对比图。 二、设计 1.MSK调制 2.MSK解调 三、代码 clear all;clc; N=20; T=1; fc=10; Fs=100; bitstream=randi([0,1],1,N); bitstream1=2*bitstream-1; b0=1; for i=1:N encode_output(i)=b0*bitstream

Time_book的博客 1万+

Dify视觉模型节点避坑指南:我用Qwen2.5-VL做OCR识别时踩过的3个坑(及解决方案)

本文分享了使用Dify平台和Qwen2.5-VL视觉模型进行OCR票据识别时遇到的三个常见问题及解决方案,包括文件变量传递、结构化输出和条件分支判断失效。通过实战经验,帮助开发者优化多模态模型在财务自动化中的应用,提升OCR识别精度和效率。

weixin_29284885的博客 401

冒泡排序算法_细说冒泡排序及其五种优化算法

01 冒泡排序 冒泡排序算法思想简单来说:在内层一次遍历中,arr[j] 与 arr[j - 1] 进行比较,如arr[j - 1] < arr[j], 不改变,反之互换值,保证arr[j]存储着 0~j - 1中的最大值,随一次遍历当前数组最大值也下沉至末尾,经过n - 1次外层循环,可使n - 1个元素下沉,最后一个元素位置确定,排序完成。 举个例子方便理解, ...

weixin_39822147的博客 342

【CTFhub】——hate_php2021

【CTFhub】——hate_php2021

manerzi的博客 1605

经典算法(1):冒泡排序及其优化

冒泡排序算法固然简单,但是在各大竞赛以及大公司的面试里常会考到冒泡排序的优化。这篇博客对冒泡排序进行了两次比较彻底的优化,并有完整的代码实现。

扬帆向海的博客 4万+

PostgreSQL 异常排查:读取流时发生异常 (x80004005)

通过以上步骤,您应该能够解决在 .NET Core 中与 PostgreSQL 数据库进行交互时出现异常 (x80004005) 的问题。确保数据库连接正确,查询语句准确,并使用兼容的驱动程序版本。如有必要,可以捕获异常并查看详细的错误信息,以便更好地排查问题。在使用 .NET Core 开发应用程序时,如果在与 PostgreSQL 数据库进行交互时遇到异常,例如在读取数据流时发生异常 (x80004005),我们需要进行排查和修复。另外,还可以尝试捕获异常并打印异常信息,以便更好地了解问题所在。

XwlyVue的博客 1621

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

冒泡排序理解以及算法优化

冒泡排序理解与算法优化 冒泡排序为基本内部排序算法(即不借助外部空间,内部自我排序), 如上图,冒泡排序经过不断比较相邻的元素的值,进行交换,第一次从第一个元素到最后一个元素的交换,会将该数组的最大值交换到最后一项,以此循环,我们不断地找出剩余元素中的最大值,并将该最大值移动到剩余元素中的最大值.最终排序成功. (本文中语言使用c语言,算法利用函数实现,编译器参考DEV C++) void Bubble_sort(int *a,int len)//函数传递数组名字以及数组长度 { int i,j,k

weixin_52333983的博客 1027

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

冒泡排序算法的优化

最近看见一道面试题,是问传统的冒泡排序算法是否还能进行优化。刚好大学室友就有参加ACM的朋友,之前和他们一起研究过几天算法,其中就看到过排序算法的优化,没想到面试题中还会有冒泡排序算法的优化这样的题目,那么这里介绍一下冒泡排序算法的优化吧。 冒泡排序是最简单最经典的排序算法,对于它怎么进行优化呢?我们知道,传统的冒泡排序对于原数组的交换次数会有差异,但是比较次数却是固定的。这样就很尴尬,比如一个...

shenqh 1062

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

优化冒泡排序算法

优化冒泡排序算法 问题分析:冒泡排序算法的基本思想就是相邻数据比较若逆序则交换,经过n-1趟比较交换后,逐渐将小数据冒到数组的前部,大的数据则陈到数组的后部,从而完成排序工作。 现在假设本来的数据本来就是从小到大有序的,则原有算法仍要做n-1趟比较操作,事实上,一趟比较下来,若发现没有进行过交换,若发现没有进行过交换,就已经说明数据全部有序,无须进行其后的比较操作了。 当然年数据原本有序的概...

weixin_30914981的博客 131

冒泡排序算法实现及优化

相信冒泡排序算法大家都不陌生,今天说一下如何进行优化 正常的一组数据进行冒泡排序如下图: 但是如果一组数据本身就是已经排序好的,如1,2,3,4,5,6,那么它还是会像上面那样的顺序进行排序,通过下面的改变可以很好的优化这一点 直接上代码: import java.text.SimpleDateFormat; import java.util.Arrays; import java.util....

不言尘世 306

优化后的冒泡排序算法

package com.xj.www.sort; /** * 优化后的冒泡排序 * * @author xiongjing * */ public class BubbleSort { /** * 冒泡排序具体流程实现如下: * 1.对数组中的各数据,依次比较相邻的两个元素的大小。 * 2.如果前面的数据大于后面的数据,就交换这个...

JavaBoy的博客 468

冒泡排序及算法优化

冒泡排序

小伍的程序之路 218

冒泡排序算法及优化

冒泡排序

lhz_333的博客 262
上一篇: 实现linux的cp命令
下一篇: 单链表构造、插入、打印、逆序实现
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、付费专栏及课程。

余额充值