冒泡与选择排序

冒泡排序与选择排序比较 排序算法可分为两大类: 比较类排序: 通过比较来决定元素间的相对次数,由于其时间复杂度不能突破O ( nlog(n) ),因此也称为非线性时间比较类排序。 非比较类排序: 不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 算法复杂度: 相关概念: 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。 时间复杂度:对排序数据的. 阅读详情

#include <iostream>
#include <ctime>
using namespace std;
void mopsort(int a[],int n)        //冒泡排序,每找出一个较大值都要交换,最值自然而然地去
{         //了最前或最后.
 int i,j,min;
 for(i=0;i<n-1;i++)            //冒泡与选择的区别在于冒泡中两两元素间的交换比较多.
  for (j=0;j<n-i-1;j++)     //相同点在于每次外层循环都找到一个最值.
  {
   if (a[j]>a[j+1])
   {
    min=a[j];
    a[j]=a[j+1];
    a[j+1]=min;
   }
  }
}
void selsort(int a[],int n)         //选择排序,每轮循环找出一个最值,将它放到第一个位置.
{
 int i,j,k,min;

 for (i=0;i<n-1;i++)            //一次i++就是找出并交换一个最值.
 {
  k=i;
  for (j=i+1;j<n;j++)        //找出一个最值. 找出较大值并不交换.
   if (a[k]>a[j])k=j;
   if(k!=i)               //将这个最值放在最前位置
   {
    min=a[i];
    a[i]=a[k];
    a[k]=min;
   }
 }
}
int main(void)
{
 const int n=10;
 int a[n],i;
 srand(time(0));                  //srand用来初始化一个全局变量,作用rand随机函数的种子.用1做参数重新初始化.
 for ( i=0;i<n;i++)
 {
  a[i]=rand()%100;         //rand使用srand产生的种子,生成一个两字节的整数
  cout<<a[i]<<endl;
 }
 mopsort(a,n);
 cout<<"after mop sort:"<<endl;
 for (i=0;i<n;i++)cout<<a[i]<<endl;

 selsort(a,n);
 cout<<"after selecttion sort:"<<endl;
 for (i=0;i<n;i++)cout<<a[i]<<endl;
    return 0;
}

使用JAVA进行冒泡排序,选择排序 目录 使用JAVA自带的数组工具类进行排序 冒泡排序 选择排序 使用JAVA自带的数组工具类进行排序 从小到大输出: //JAVA中自带的数据工具包 import java.util.Arrays; public class 排序 { public static void main(String[] args) { //静态齿初始化一个一维数组 int[] array = {1,2,77,34,5,999,7,8,399}; 阅读详情

相关推荐

统信UOS安装CH384串口卡驱动

本文讲解如何在统信UOS系统下安装CH384 PCIE多串口驱动安装过程,CPU为飞腾D2000。其他Linux内核系统安装亦可参照类似方法。

shjhuang的专栏 1884

算法章之排序总结

文章目录前言一、选择排序(sele sort)二、插入排序(insert sort)三、冒泡排序(Bubble sort)四、归并排序(merge sort)五、希尔排序(shell sort)六、快速排序(quick sort)七、堆排序(heap sort)总结 前言 提示:这里介绍算法中排序。 提示:以下是本篇文章正文内容,下面案例可供参考 一、选择排序(sele sort) 原理不多赘述,主要特点是跑两个loop都是跑全程,所以时间复杂度比较高,而且因为是inner loop是全遍历,或者举个例

Tommy_giant的博客 240

保姆级教程:在RK3568上搞定PR2100K+GC2385双摄(从DTS配置到HAL层补丁)

本文详细介绍了在RK3568平台上调试PR2100K+GC2385双摄系统的完整流程,从DTS配置到HAL层补丁。涵盖硬件连接、媒体控制器拓扑验证、Camera3配置、HAL层特殊补丁及性能优化等关键步骤,帮助开发者快速解决双摄调试中的常见问题,提升嵌入式视觉系统开发效率。

weixin_28724661的博客 195

C语言零基础入门(五 函数(续))

接下来我们继续学习函数吧!

m0_37805255的博客 587

整车电检工艺流程

本文是笔者在从事汽车行业智能制造领域过程,对于整车电检工艺流程的理解与总结。

qq_40664711的博客 1万+

2026.3.21:Ubuntu26.04 apt换国内源 清华源 阿里源 中科大源 163源

作为 LTS 版本,它会有 5 年的常规维护和安全更新。如果订阅 Ubuntu Pro,还能享受额外7年的支持。也就是说, Ubuntu Pro将享有长达 12 年的系统更新保障!接下来,我们将重点介绍 Ubuntu 24.04 LTS 中那些值得关注的新特性,以方便你决定是否进行升级。Ubuntu 24.04 LTS,代号 「Noble Numbat」,即将与我们见面!Canonical 已经宣布, Ubuntu 24.04 LTS。源文件地址 已经更换为。

拥抱具身智能,昇腾Ascend C 9071

排序2:选择排序(选择排序+堆排序)

排序选择排序,包括直接选择排序和堆排序的描述

u010246947的专栏 440

创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—ISP图像处理开发案例

创龙科技研发的 TL3588-EVM 评估板具备强大视频处理能力,可满足多场景视频开发需求。为助力开发者快速上手,本文整理 7 个实用视频开发案例,涵盖从采集到显示的全流程,详细说明各案例的硬件连接、参数配置与代码解析,帮助开发者高效实现评估板视频相关功能开发与调试。

创龙,嵌入式一体化解决方案商 207

C:C的排序算法:简单选择排序(SelectSort)

#include&lt;stdio.h&gt; typedef struct Array{ int key; }Array; #define LENGTH 10 void SelectSort(Array A[], int n); void Swap(int *a,int *b); int main() { int arr[LENGTH] = { 1,5,3,7,4,23,14,25,16,2...

Chnyac的博客 866

Python 陌生代码库阅读之道:从零起步到一周掌控 5 万行老项目的实战策略

文中特别强调"自顶向下+画图+注释"的基础阅读心法,并提供了具体的代码示例和命令行技巧。对于大型项目,建议先建立核心流程的骨架认知,再逐步填充细节,同时注重文档化和测试覆盖率的提升。 掌握这套方法后,开发者可以将陌生代码库的阅读效率提升3倍以上,在一周内建立起对5万行级别项目的整体掌控力。

铭渊老黄 506

halcon算子翻译——connection

算子:connection(Region : ConnectedRegions : : ) 功能:分离一个区域中相连接的部分(变成多个区域)。 输入参数: Region:输入一个区域; 输出参数: ConnectedRegions: ———————————————— 版权声明:本文为优快云博主「机器人自动化控制」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.youkuaiyun.com/haier123888/article/details/1

haier123888的博客 4828

【排序(C++实现)】:选择排序

思想 每次从未排好序的数组中找最小的元素,然后与未排好序且下标最小的元素进行交换。例如: 原始数组:3,1,2,4 第一趟(交换min=1,3):1,3,2,4 第二趟(交换min=2,3):1,2,3,4 C++代码 /*算法:选择排序*/ #include &lt;iostream&gt; using namespace std; /*************...

bqw的博客 1261

Centos7 yum 报错「Errno 256」No more mirrors to try 解决方法

首先该问题的出现是由于网络的震荡导致,这是重点。(1)将源更换成阿里云的官方源,步骤参考如上(2)同时将zabbix的官方源更换成阿里云里面的zabbix镜像源,因为zabbix官方源根本网络不通,因为国家防火墙的拦截,导致网络不通。这是阿里源的zabbix镜像地址: https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/修改系统中早期生成的zabbix.repo文件,如下:主要是把baseurl替换成阿里云的zabbix镜像地址即可。

专注基础架构领域 3873

冒泡排序和选择排序

一、冒泡排序 冒泡排序(Bubble Sort):是一种较简单的排序算法。 二、算法描述: ①、 比较相邻的元素 : 如果第一个元素比第二个元素大,那么就交换他们两个。 ②、从 第一对相邻的元素 开始比较 直到 最后一对,这样在最后的元素应该会是最大的数。 ③、 针对所有的元素(除了最后一个)重复以上的步骤。 重复步骤 1~3 ,直到没有任何一对数字需要比较。 三、名字由来: 因为越小的元素会经由交换 慢慢 “浮” 到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒

weifeng blog 3万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

冒泡排序与选择排序

一.冒泡排序 1.概念 冒泡排序这种排序方法其实关键词就在于冒泡两个字,顾名思义就是数字不断比较然后最大的突出来,也就是说把相邻的两个数字两两比较,当一个数字大于右侧相邻的数字时,交换他们的位置,当一个数字和他右侧的数字小于或等于的时候,不交换。 2.图解 关于冒泡排序我自己画了一幅图来描述他的一轮过程 这里我举了五个无序的数{7,3,6,5,4} 由此可看出他不断与右侧相邻的数字进行比较,当他大于右边的数字就交换,否则不交换,就用这种方法不断进行排序进行很多轮,最后得出一个有序的序列...

weixin_64448174的博客 9553

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

冒泡排序和选择排序区别

冒泡排序和选择排序区别 1.稳定性 冒泡排序稳定排序。(例如 1,2,3,2,4 排完序后两个2,2 先后顺序不变) 选择排序不稳定排序。 2.都属于比较排序,交换成本不同。 冒泡排序需要相邻元素比较,如果当前元素大于后一个元素进行交换。 选择排序,先选择后交换,减少交换次数。 import java.util.Arrays; /** * @program:tpb * @description:冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换他们两个,稳定排序 ...

技术分子博客 3502

pscad IEEE标准系统搭建说明

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

java排序之冒泡排序和选择排序

冒泡排序代码及思想 1,冒泡排序 1,冒泡排序思想 1. 第一轮:将第一个元素与第二个元素进行比较,选出较大元素,若第一个元素大,交换第一个元素跟第二个元素的位置,然后用较大元素与第三个元素进行比较,再选出较大元素,依次往后,将最大的元素放在最后一个位置,即是数组中的最大元素,比较的次数为arr.length-1 2. 第二轮:与前面类似,将除了最大元素,剩下的元素进行比较,选出第二大元素,放在最后第二个位置,比较的次数为arr.length-2 3. 第i轮:比较的次数为arr.length-i

weixin_44889894的博客 1286

冒泡排序与选择排序的区别

冒泡排序与选择排序的区别 1.冒泡排序(吐泡泡算法): 顾名思义,冒泡就是让一个泡泡逐渐的上升,直到到达顶点,如同小鱼吐泡泡一样。 算法描述: 我们在给定的数字中,将每两个相邻数字进行比较。 例如:我们进行从大到小的排序,那么如果前面的数字小于后面的,我们就应该将这两个数字进行交换(从小到大也是同理) 应该注意的是: 我们比较一轮的结果只是将一个数给排好,要想把所以数字均排列好,应该进行n-1轮(n代表数字个数)。 而在每一轮中我们又要确定比较的次数,因为每比较一轮,我们就确定了一个数,所以比较的次数应该

hcxddd的博客 4715

冒泡排序和选择排序的不同

排序是计算机程序中的主要任务之一,数组的元素按特定顺序排列。排序使搜索更容易。冒泡排序和选择排序是排序算法,可以通过它们使用的排序方法加以区分。冒泡排序本质上是交换元素,而选择排序通过选择元素来执行排序。     二者的另一个显著区别是冒泡排序是一种稳定的算法,而选择排序是一种不稳定的算法。稳定的意思是,在列表或数组排序前后,具有相同值的记录以相同的顺序出现。一般来说,大多数稳定快速的算法都使用额外的内存。

运维狗的备忘录 1万+

冒泡、插入与选择排序

但是实际的软件开发中,我们排序的可能是 10 个、100 个、1000 个这样规模很小的数据,所以,在对同一阶时间复杂度的排序算法性能对比的时候,我们就要把系数、常数、低阶也考虑进来。有序度不同的数据,对于排序的执行时间肯定是有影响的,我们要知道排序算法在不同数据下的性能表现。同理,对于一个倒序排列的数组,比如 6,5,4,3,2,1,有序度是 0;对于一个完全有序的数组,比如 1,2,3,4,5,6,有序度就是。比如我们有一组数据 2,9,3,4,8,3,按照大小排序之后就是 2,3,3,4,8,9。

2301_81948543的博客 1036

选择排序和冒泡排序

选择排序和冒泡排序是数组排序中最常见的两种排序方法,以下用两个例子讲述这两种排序。 选择排序 假设有一个长度为5的数组,数组中有5个元素,要将这5个元素从小到大排序: int a[5]={3,5,2,8,1}; /* a[0]==3 a[1]==5 a[2]==2 a[3]==8 a[4]==1 */ 然后再定义一个变量min来存放数组的下标: int min; 第一步(第一趟比较) 从第0个元素开始比较,也就是从a[0]开始比较,假设最小值就是a[0],那么就将a[0]的下标存放到mi

weixin_51195895的博客 1477

冒泡排序和选择排序的区别

冒泡排序 冒泡排序的基本概念:冒泡排序类似于水中冒泡,较大的数沉下去,较小的慢慢冒起来,假设从小到大,较大的数慢慢往后排较小的数慢慢往前排 (冒泡排序其实就是每一次循环遍历,将一个最大的数一到序列末尾) 算法描述: 1.比较相邻的元素,如果前一个比后一个大,则进行位置交换。 2.第一轮排序第1个和第2个一对,比较与交换,随后第2个和第3个一对比较交换,这样直到倒数第2个和最后1个,将最大的数移动到...

summer_e的博客 4284

冒泡排序&选择排序

冒泡排序&选择排序 冒泡排序 从第一个数开始从左往右,它会把相邻的两个数进行比较; 如果左边的数比右边的数大,那么它就会立即交换顺序继续往后比较; 如果左边的数比右边的小,那么右边的数就会去往后继续比较; 这样第一轮比较下来会确定最大的值 第二轮下来确定第二大的值 依次类推… 完成排序 假设有n个数需要用冒泡排序进行排列如何实现? 分析: n个数,那么我们需要进行 n-1 轮的比较,因为最后一个数可以不用比较了; 第一轮里面需要比较n-1次(因为假设有n个数,我们从第一个开始的数得跟另外n-1个数

buibuibui_piapia的博客 1274
上一篇: 一个完整托盘程序的实现
下一篇: 两道面试题
biblereader
博客等级 码龄20年 11粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值