【排序算法】直接选择排序(SelectSort)与冒泡排序(BubbleSort)

基于Python+OpenCV中文及符号检测 一、项目背景与意义在图像处理、文档识别、自动翻译等场景中,中文及符号的准确检测是一个重要且复杂的任务。传统的字符检测方法往往对英文等拉丁字母系的识别效果较好,但对中文及特殊符号的识别准确率较低。本项目旨在利用Python编程语言结合OpenCV库,开发一个能够高效、准确地检测图像中中文及符号的系统,为相关领域的研究和应用提供技术支撑。二、技术实现图像预处理:利用OpenCV的图像处理功能,对输入的图像进行灰度化、二值化、滤波去噪等预处理操作,以提高中文及符号检测的准确性[1]。 阅读详情

直接选择排序:每一趟在n-i-1(i=1,2,...n-1)个记录中选取关键字最小的记录,并和第i个记录进行交换。

void SelectSort(int Array[],int n)//n为数组长度,不稳定排序
{
	int i,j,k;
	int temp;
	for(i=0;i<n-1;i++)
	{
		k=i;   //保存最小值
		for(j=i+1;j<n;j++)
		{
         if(Array[j]<Array[k])
              k=j;      //用k指出每趟在无序区段的最小元素
		}
		//将Array[k]与Array[i]交换
		temp=Array[i];
		Array[i]=Array[k];
		Array[k]=temp;
		
	}
}

该算法的执行时间为O(n^2),这个算法的比较次数与原来的排列顺序无关,但是移动的次数与初始的序列有关。该算法是 不稳定的。


冒泡排序:通过无序区中相邻记录关键字间的比较和位置交换,使关键字最小的记录如气泡一般往上漂浮直到“水面”。整个算法从下面的记录开始,对每两个相邻的关键字进行比较,让关键字较小的记录换到上面。使得经过一次冒泡排序后,关键字最小的记录到达最上端,接着,再在剩下的记录中,查找关键字的次小的记录,并把它换到第二个位置,依次类推。

算法实现:

void BubbleSort(int Array[],int n)
{
	int i,j,exchange;
	int temp;
	for(i=0;i<n-1;i++)
	{
		exchange=0;
		for(j=n-1;j>i;j--)//比较,找出最小关键字的记录
		{
			if(Array[j]<Array[j-1]) 
			{
                         temp=Array[j];   //Array[j]与Array[j-1]进行交换,将最小关键字前移
			 Array[j]=Array[j-1];
			 Array[j-1]=temp;
			 exchange=1;
			}
		}

        if(exchange==0)//本次未发生交换时结束算法
			return;
	}
}

执行时间与元素原来的排序有关。最坏情况下的执行时间为: O(n^2),该算法是稳定的。


生成模型实战 | 基于Transformer生成音乐 本文介绍了基于Transformer架构的音乐生成方法,将音乐视为一系列事件序列进行处理。与将音乐表示为多维图像的MuseGAN不同,该方法使用类似GPT的仅解码器模型,基于先前事件预测下一个音乐事件。模型使用MIDI格式的钢琴音乐数据,通过分词处理将音符转换为note-on、note-off、time-shift和velocity四种事件类型,共388个独特词元,映射为索引序列后输入网络。训练完成后,可通过调整温度参数控制生成音乐的新颖性,从而创作出风格类似训练数据且连贯逼真的音乐作品。 阅读详情

相关推荐

手把手教你解决uniapp中esbuild版本冲突问题(Mac版专属指南)

本文是针对Mac平台uniapp开发者的专属指南,详细解析了运行项目时常见的`Cannot start service`错误,即esbuild的Host版本与binary版本不匹配问题。文章从错误根源入手,提供了从快速应急处理到彻底根治的完整解决方案,包括手动替换二进制文件、锁定依赖版本、清理缓存及优化工具链配置,旨在帮助开发者高效解决版本冲突,恢复并稳定开发环境。

i0j1k2l3m的博客 458

选择排序(SelectSort)

/*选择排序(SelectSort) *从当前未排序的整数中找一个最小的整数, *将它放在已排序的整数列表的最后。 *要点:选择排序选最小的,往左边选。 *选择排序(只在最后进行一次交换)比冒泡排序 *(交换次数太多,只要左边大于右边就交换)快, *两种排序都属于低级排序(同一个档次)。 */ #include &amp;lt;iostream&amp;gt; using namesp...

Yoc Lu 665

RedVQA:轻量级无参考视频质量评估算法原理与工程实践

视频质量评估是计算机视觉领域的关键技术,旨在通过算法自动量化视频的观看体验。其核心原理在于模拟人眼视觉系统,从像素数据中提取并融合空域和时域特征,以预测主观质量分数。这项技术的价值在于,它能自动化处理海量视频内容的质量监控,为流媒体服务、移动设备影像优化等场景提供关键指标。无参考视频质量评估作为该领域的前沿方向,无需原始无损视频作为参考,更贴合实际应用。本文以RedVQA项目为例,深入剖析了如何利用轻量化的深度网络架构,如MobileNetV3,结合高效的时空特征融合模块,在保证评估精度的同时,大幅降低计算

weixin_28698129的博客 575

常用排序(二)

选择排序 选择排序说的是:每一趟在后面没有排序n-i个元素中,选择一个最小的放在第 i 个位置上,接下来选择i+1位置上的元素,一共需要执行n-2趟操作,他的时间复杂度是O(N*N) 选择排序有三种实现方式;直接选择排序、锦标赛排序、堆排序 1.直接选择排序 选择最小的元素,如果不是第一个就和第一个对调位置,这样他就是第一个了,重复直到排序结束 void SelectSort(dataL

我就是王大大的博客 517

Rstan下载安装攻略

准备把Rtools删掉,重新下载(胡乱猜测是安装顺序的问题),但是卸载时显示Rtools被占用,但我已经把该关的都关了。这一问题的出现,直接让我卸载掉了Rstudio,又重新安装了一个,不过这次安装在另一个磁盘,因为原来的内存不多了。或者参考知乎,使用清华镜像网址进行下载:(知乎链接)https://zhuanlan.zhihu.com/p/346947595(清华下载链接)https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/Rtools/

m0_64643017的博客 3099

livebos报表开发

文章目录1.参数的设定2.展示的内容3.综合展示的效果4.调用过程5.可以在数据库里面查看6.注意事项7.过程代码 1.参数的设定 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-flb5C49A-1619516341977)(/uploads/xinxibuneibuzhishiku/images/m_bc71bb4608053778dbf29e06cd102ae1_r.png)] 2.展示的内容 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-

阿浪的专栏 709

排序算法大全

转自:/作者:编程小梦 网址:www.bcmeng.com #include #include #define maxsize 100 typedef int datatype; void SelectSort(datatype x[],int n) //选择排序 {     int i,j,k;     datatype temp;     for(i=

小潭爱游戏 544

神经网络:初学者指南(专业版)

神经网络是一种受生物大脑启发的计算模型,由多层互连的人工神经元组成。本文从生物神经元结构出发,介绍了感知器模型、激活函数、网络架构(输入/隐藏/输出层)等基础概念,并详细阐述了前向传播、反向传播、损失函数和优化器等核心训练机制。同时涵盖了CNN、RNN等常见架构,以及过拟合、梯度消失等关键挑战,最后概述了神经网络在计算机视觉、NLP等领域的广泛应用。全文系统性地梳理了神经网络的基础理论和实践要点,为初学者提供了清晰的学习路径。

weixin_42107409的博客 1782

C语言经典练习题(2)——“冒泡排序(Bubble Sort)“

带你秒懂冒泡排序原理及代码实现

NunU的博客 1万+

PostgreSQL的学习心得和知识总结(八十二)|深入理解PostgreSQL数据库SQL语句的词法解析和语法解析流程

postgresql 词法解析语法解析流程

孤傲小二~阿沐的博客 5447

Spark中Application、Job、Stage和Task区别详解

在Spark中,有一些关键的概念,如Application、Job、Stage和Task,它们描述了Spark作业的不同层次和组成部分。下面我将详细介绍每个概念,并通过示例说明它们之间的区别。

优快云 精品推荐 901

C语言:冒泡排序。

问题 冒泡排序(Bubble Sort),也称为沉降排序(Sinking Sort),之所以称其为冒泡排序,是因为算法中值相对较小的数据会像水中的气泡一样逐渐上升到数组的最顶端。与此同时,较大的数据逐渐地下沉到数组的底部。这个处理过程需在整个数组范围内反复执行多遍。每一遍执行时,比较相邻的两个元素。若顺序不对,则将其位置交换,当没有数据需要交换时,数据也就排好序了。 编程将排序函数DataSort...

耳东 3056

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

数据结构-排序基础代码

数据结构-排序基础代码

IT1995的博客 5654

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

几种排序算法实现

class Sort { public: Sort(void); ~Sort(void); public: inline void Swap(int &amp;amp;a,int &amp;amp;b); //冒泡排序 void BubbleSort(int a[],int n); //直接插入排序 void InsertSort(int a[],int n); //希尔排序 void Sel...

zhonglixianyun的博客 374

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C/C++ 排序算法大全代码

原文地址:http://blog.youkuaiyun.com/johnnyhu90/article/details/12447777 C/C++ 排序算法大全代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

hnyzyty的专栏 352

排序相关算法-1

因排序代码过多,同样分成两个博文来发表。 #include&lt;iostream&gt;usingnamespacestd;/*希尔排序的分组是gap(增量)的倍数堆排序的分组是树(子树)的分组*/#defineMAXSIZE20#defineMAXD8typedefintElemType;typedefs...

weixin_33758863的博客 85

六大排序算法精讲(SelectSort、BubbleSort、InsertSort、MergeSort、QuickSort、HeapSort)

一、前言 最近在看算法公开课,听了很多老师讲了不少很有用的东西,但是只听不练很快就忘了,所以我还是选择以博客的方式巩固自己的学习。 二、排序算法概述 今天主要讲的是比较经典的六大排序算法:选择排序、冒泡排序、插入排序、归并排序、快速排序和堆排序,除此之外还有一个比较重点的基数排序,但是因为它是不基于比较的排序,所以用法不是很广泛,所以我也只讲解它的实现原理,不多做阐述,并且,在讲解之余,我也会穿插一些其他内容。 三、选择排序 选择排序是最基础的一...

少渊的博客 2369

排序算法之bubbleSort,selectSort,insertSort,shellSort

温习冒泡排序选择排序插入排序 温习 关于稳定性 稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序。 不是稳定的排序算法:选择排序(示例【2 3 2 1】)、快速排序(示例【3 1 2 3 5 4】主元2)、希尔排序(示例【】)、堆排序(示例【3 2 3 2】最小堆)。 冒泡排序 冒泡排序算法是最简单的排序算法,它的执行效率最低,但冒泡排序算法既适用于顺序物理结构也适用于链式物理结构 数组的冒泡排序 #include&lt;iostream&gt; #include&lt;vector&gt.

selfsongs 354

七大经典排序算法

本文系统介绍了七大经典排序算法,包括插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序和归并排序。详细分析了各算法的核心思想、代码实现(均给出C语言实现)、时间复杂度(最优/最坏/平均)、空间复杂度及稳定性等特性。通过10万随机数测试对比性能,快速排序表现最优(12ms),归并排序(15ms)和堆排序(18ms)次之。针对不同应用场景提出建议:小规模数据用插入排序,通用场景选快速排序,内存敏感用堆排序,稳定需求用归并排序。最后强调没有绝对最优的算法,需根据数据规模、有序度、稳定性等需求灵活选择。

我的博客 1万+

算法:用Java实现冒泡排序(BubbleSort)、插入排序(InsertSort)、选择排序(SelectSort)

接下来我准备发表一系列关于排序的算法,本文我准备用Java实现冒泡排序、插入排序、选择排序: 1、冒泡排序: import java.util.Arrays; /** * @author LiYang * @ClassName BubbleSort * @Description 冒泡排序算法 * @date 2019/11/4 11:14 */ public class BubbleS...

weixin_39448458的博客 328

冒泡排序(BubbleSort)算法以及简单选择排序(SelectSort)算法实现(C语言)

一、冒泡排序 从后往前(或从前往后)两两比较相邻元素的值,若为逆序(即A[i-1]&gt;A[i]),则交换它们,直到序列比较完。称这样过程为“一趟”冒泡排序。 (二)算法实现 //交换 void swap(int &amp;a, int &amp;b){ int temp = a; a = b; b = temp; } //冒泡排序 void BubbleSort(int A[], int n){ for(int i=0 ; i&lt;n-1 ; i++){ bool flag = f

派拉斯兔子的博客 848

冒泡排序和选择排序

算法思路:1.每走一趟把最大的放在后面2.第1趟,需要比较n-1次;第2趟,需要比较n-2次;第i趟,需要比较n-i次;第n-1趟,需要比较1次3.外层循环为趟数,内层循环为比较的次数9 8 7 6 5 4 3 2 1 0从小到大排序。

m0_75178021的博客 539

排序:快速排序与选择排序

在最近的学习中,对于排序算法进行了一定的学习,在这里对快速排序和选择排序的部分内容进行说明,其余内容在后期会进行补充,感谢大家提出宝贵意见。 宏定义如下: #include using namespace std; #define M 21 typedef int SqList[M]; 一.冒泡排序 void BubbleSort(SqList &L,int n)

罗小黑の窝 1887

Java排序算法

本文介绍了常见的排序算法及其实现,主要包括插入排序(直接插入排序和希尔排序)、选择排序(直接选择排序和堆排序)、交换排序(冒泡排序和快速排序)以及归并排序。详细阐述了每种算法的基本思想、时间复杂度、空间复杂度和稳定性。其中,插入排序和冒泡排序是稳定排序,时间复杂度为O(n²);快速排序和归并排序时间复杂度为O(nlogn),但快速排序不稳定;堆排序时间复杂度为O(nlogn),空间复杂度为O(1)。文章还提供了各排序算法的Java代码实现,并总结了各排序算法在不同情况下的性能表现。

2301_81121782的博客 868

JAVA基础的三种排序方法

public class BubbleSort { public static void main(String[] args) { int [] array=new int[] {1,22,15,33,46,14}; BubbleSort bs = new BubbleSort(); bs.sort(array); } //冒泡排序 public void sort(int []array...

andylsy1992的博客 270

选择排序和冒泡排序

每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据排完

Tangcan2的博客 426
上一篇: 【排序算法】直接插入排序与希尔(Shell)排序
下一篇: 【排序算法】基数排序(RadixSort)
xiaoding133
博客等级 码龄19年 415粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值