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

(三)算法--排序算法选择排序和冒泡排序 选择排序和冒泡排序是比较直观的排序,算法解决策略上属于蛮力法,简单直接。 冒泡排序 为什么叫做冒泡排序,可能就像是水里面的泡泡,大的先出来,所以称为冒泡排序吧。 思想:每次都冒出大的排到后面(或者每次都冒出小的排在最前面) 原理: 1 、比较每两个相邻的元素,如果它们逆序的话(逆序,如果是从小到大排序,就是大的在后面;如果是从大到小排序,就是小的在后面;按照这样的顺序), 阅读详情

(1)直接选择排序(VS2013)

直接选择排序是一种比较简单的排序方法,它的排序过程为:先从待排序的所有记录中选出关键字最小的记录,把它与原始序列中的第一个记录交换位置;然后再从去掉了关键字最小的记录的剩余记录中选出关键字最小的记录,把它与原始序列中第二个记录交换位置;以此类推,直至所有记录成为有序序列。

实现代码如下:

</pre><pre name="code" class="cpp">#include "stdafx.h"

#include <iostream>
using namespace std;

/*直接选择排序*/

int _tmain(int argc, _TCHAR* argv[])
{
	int a[10];
	int n = 10;        //序列个数(可以自己任意输入)
	for (int i = 0; i < 10; i++)  //输入原始数组
	{
		cin >> a[i];
	}
	for (int i = 0; i < 10 - 1; i++)    //进行n-1趟排序
	{ 
		int k = i;
		for (int j = i + 1; j < 10; j++)
		{
			if (a[k]>a[j])
				k = j;   //找到待排序列中关键字最小的记录
		}
		if (k != i)     //把最小记录和原始序列中的第一个记录交换位置
		{
			int temp = a[i];
			a[i] = a[k];
			a[k] = temp;
		}
	}
	cout << "after sorting:" << endl;
	for (int i = 0; i < 10; i++)            //输出由小到大排序后的序列
		cout << a[i] << " "; 
	cout << endl;
	return 0;
}


(2)冒泡排序(VS2013)

冒泡排序又称为起泡排序,它也是一种简单常用的排序方法。其基本思想是通过相邻记录之间的关键字的比较和交换,使关键字较小的记录逐渐从底部移向顶部,即下标较大的单元移向下标较小的单元,就像水底下的气泡一样逐渐向上冒;而关键字较大的记录就像石块一样往下沉,每一趟排序有一块“最大”的石头沉到水底。

排序过程:现将第1个记录和第2个记录进行比较,若为逆序,则交换之;接着比较第2个记录和第3个记录;以此类推,直至第n-1个记录和第n个记录进行比较、交换为止,我们称这样的过程为一趟冒泡排序。如此经过一趟排序,关键字最大的记录被安置到最后一个记录的位置上。然后,对前n-1个记录进行同样的操作,使具有次大关键字的记录被安置在第n-1个记录的位置上。重复以上过程,直到没有记录需要交换为止。

实现代码如下:

#include "stdafx.h"

#include <iostream>
using namespace std;

/*冒泡排序*/

int _tmain(int argc, _TCHAR* argv[])
{
	int a[10];
	for (int i = 0; i < 10; i++)       //输入原始数组
		cin >> a[i];
	for (int i = 0; i < 10 - 1; i++) 
	{
		for (int j = 0; j < 10 - 1 - i; j++)       
		{
			if (a[j]>a[j + 1])        //相邻记录之间比较,大的元素往下沉
			{
				int temp = a[j];
				a[j] = a[j + 1];
				a[j + 1] = temp;
			}
		}
	}
	cout << "after sorting:" << endl;       //输出由小到大排序后的序列
	for (int i = 0; i < 10; i++)
		cout << a[i] << " ";
	cout << endl;
	return 0;
}


【数据结构】七大排序算法(超详细) 本文详细介绍了数据结构中的七大排序算法 阅读详情

相关推荐

【数据结构之排序算法】

数据结构学习笔记之8大排序算法,直接插入排序,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,计数排序图文详解。

m0_69455439的博客 1174

算法|冒泡排序

前面讲过 选择排序 是基于元素比较的,现在这个是基于相邻元素比较的算法算法描述:使用从小到大的排序策略.从最后一个元素开始,按照从后向前的方向,相邻元素之间进行比较,如果发现后一个元素比前一个元素小,则交换,直至数组结束,这样就可以找出最小的元素,放在第一个位置.然后再次重复上面的策略,在剩下的元素中找到最小的元素放在第二个位置.直至整个循环结束算法实现为:public class BubbleS...

l491337898的博客 482

在windows10/11中使用ipatool提取苹果app安装包ipa文件

本文介绍了在Windows10/11系统中使用ipatool工具下载苹果App安装包(.ipa)的详细步骤。首先需准备Windows电脑、AppleID账号并下载ipatool工具;具体操作包括:登录AppleID、搜索应用、获取购买授权、查看历史版本及下载指定版本。关键步骤强调获取授权的重要性,并提供了常用命令速查表,帮助用户完成从登录到下载的全过程。该教程适用于需要获取旧版本App或进行应用测试的场景。

zhengshaolin128的博客 2576

直接(选择)排序和冒泡排序

/** * Created by Administrator on 2017/2/22. */ public class Sort { public static void main(String[] arsg){ int[] arr = {2,3,5,6,4,3}; System.out.println("选择排序的结果是:"); Sel

d007letian的博客 569

从代码到实践:手把手教你用EmbodiedOcc++实现高效3D占用预测(含ScanNet配置)

本文提供了EmbodiedOcc++框架在ScanNet数据集上实现高效3D占用预测的完整实践指南。从环境搭建、数据预处理入手,详细解析了其核心创新点——几何引导优化(GRM)与语义感知不确定性采样(SUS)的代码实现与配置,并分享了训练、评估及调参的实战技巧,帮助开发者快速掌握这一先进的3D感知技术。

terraform7cloud的博客 587

Windows显卡TDR超时导致Unity崩溃?手把手教你修改注册表延长响应时间

本文详细解析了Windows显卡TDR超时导致Unity崩溃的问题,并提供了修改注册表延长响应时间的完整解决方案。通过调整TdrDelay和TdrDdiDelay键值,开发者可以有效避免D3D11设备丢失错误,提升Unity编辑器的稳定性。文章还包含显卡驱动优化、系统性能调优等实用技巧,帮助开发者彻底解决编辑器崩溃问题。

weixin_33737774的博客 621

选择&冒泡&快速排序算法

选择&冒泡&快速排序算法

Charge8的博客 1703

山东大学软件学院计算机组成原理课程设计实验三

文章目录一、实验时间二、实验内容1. 实验目的2. 设计要求3. 实验基本思路三、电路图1. 可预置初值的模256异步计数器2. 8位ALU电路3. 总图四、补充 一、实验时间 第三次实验:2021年4月8日星期四,第六周 第一次部件级实验,开始算分 二、实验内容 微程序控制的运算器设计 1. 实验目的 (1)熟悉简单运算器的结构 (2)熟悉微命令的产生和时序 (3)熟悉运算器功能测试。 2. 设计要求 利用之前设计的具有超前进位功能的8位ALU,实现简单算术或逻辑运算 两操作数由八位寄存器R0、R1提供,

叶卡捷琳堡的博客 1万+

排序算法--冒泡排序

经典排序算法–冒泡排序 冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排...

star_fighting的博客 419

C300 | 5680t | 新格林| AN5516 | 远程ONU升级指导

ONU的远程管理升级 1、ZTE C300 OLT : 1.1 环境拓扑: PC1(filezilla server)------(uplink_default-vlanID)OLT---------ONU | | mng1 1.2 配置部署: 1):PC1(filezilla server): IP:192.168.88.252 255.255.255.0 配置FTP-Server的用户名:gp...

Shelly的博客 3770

二手分析仪器改造实战:如何用PMT搭建荧光检测电路(附完整电路图)

本文详细介绍了如何利用二手分析仪器中的光电倍增管(PMT)核心部件,进行荧光检测电路的实战改造。内容涵盖从PMT工作原理理解、高压供电电路设计、低噪声前置放大(跨阻放大器)到信号调理的完整流程,并提供了关键电路图与调试排错指南,旨在帮助电子爱好者与工程师低成本构建稳定、高灵敏度的专业检测系统。

weixin_29234239的博客 440

直接选择排序和冒泡排序

直接选择排序 直接选择排序是一种简单的排序算法。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置;再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 代码实现: import java.util.Arrays; public class SortTest { public static void main(String[] args) { // 定义需要升序排序的数组arr int [] arr={8

qq_45896330的博客 1万+

iOS In-App Purchase 自动续订订阅完整实现指南

本文摘要: 自动续订订阅是iOS应用变现的核心模式,适用于流媒体、云存储等持续服务场景。文章系统讲解了从配置到实现的完整流程:首先对比各类订阅模式特点,解析订阅生命周期和关键术语;然后详细说明App Store Connect中的订阅组创建、产品配置和服务器通知设置;最后展示客户端StoreKit实现方案,包括产品标识符定义、订阅管理器封装和支付队列观察机制。全文提供可落地的代码示例和技术细节,帮助开发者掌握自动续订订阅的全链路实现。

Sheffi 1756

基本排序算法(直接排序,选择排序,冒泡排序)

一、 直接排序 思路: 首先需要两个嵌套的for循环,外层for循环控制轮数;内层for循环控制每轮比较的次数。 这里来演示一下遍历的过程: 第一轮: 首先让i指向数组的首部,让j指向i的后一个元素,两者比较,2比1大,所以交换2跟1的位置,然后j后移 依次这样排完一轮的结果为: 第二轮: 让i后移,j指向i的后一位,继续重复第一轮的过程。 第三轮: 一直重复就可以排序完成了。 代码实现 //此代码包含转换过程 import java.util.*; public class DSort{ publ

m0_52384288的博客 5005

37.华为路由器:loopback(本地回环)接口的作用

本地环回接口(或地址),亦称回送地址(loopback address)。 此类接口是应用最为广泛的一种虚接口,几乎在每台路由器上都会使用。常见于如下用途: 1 作为一台路由器的管理地址 系统管理员完成网络规划之后,为了方便管理,会为每一台路由器创建一个loopback 接口,并在该接口上单独指定一个IP 地址作为管理地址 ,管理员会使用该地址对路由器远程登录(telnet ),该地址实际上起到了类似设备名称一类的功能。 但是通常每台路由器上存在众多接口和地址,为何不从当中随便挑选一个呢 ? 原因如下:由于

迷逝 3万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Java -- 排序算法之冒泡排序、快速选择排序、反转排序

在程序设计中,经常需要将一组数列进行排序,方便统计和查询。数组有很多常用算法,排序算法是必不可少的,今天给大家简单介绍三种常用的排序算法:冒泡排序、直接选择排序、反转排序。不足之处请指正… 冒泡排序 冒泡排序是最常见、最常用的数组排序算法之一。它的工作过程总是将小数往前放,大数往后放,类似于水中气泡上升的动作。 1、基本思想 基本思想是对比相邻元素值,满足条件就交换元素值,把较小的元素移动到数组的...

Daniel 537

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C语言实现各个排序算法(直接插入排序,折半插入排序,希尔排序,冒泡排序,简单选择排序)

数据结构开发总结报告 ——内部排序综合设计程序的编程实现 实现各个排序算法(直接插入排序,折半插入排序,希尔排序,冒泡排序,简单选择排序) #include<stdio.h> #define MaxSize 20 #include<windows.h> typedef int KeyType; //定义关键字类型 typedef struct //记录类型 { KeyType key; //关键字项 } RecType;

ring__wang的博客 3644

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

十大排序算法(Top 10 Sorting Algorithms)

十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。......

果冻の技术星球 1万+

JAVA冒泡排序与直接选择排序

JAVA冒泡排序与直接选择一、冒泡排序1、 基本思想2、算法实现二、直接选择排序1、 基本思想2、算法实现三、算法比较 一、冒泡排序 1、 基本思想 冒泡排序基本思想是对比相邻的元素值,如果满足条件就交换元素值,例如,把较小的元素移动到数组前方,较大的元素移动到数组后方,如此,较小的元素就像气泡一样从底部上升到顶部。 2、算法实现 public static void BubbleSort(int[] arr){ //数组中arr.length个元素只需要比较arr.length-1轮即可

zhbin6的博客 306

排序算法之冒泡排序、选择排序、直接插入

1、冒泡排序 首先上原理图: 代码实现: public static void main(String[] args) { int[] arr = {24, 69, 80, 57, 13}; bubbleSort(arr); print(arr); } public static void bubbleSort(in...

YesPlus的博客 390

总结一些排序算法的原理和实现

这两天看了一下常用的排序算法,并进行了简单的实现。其原理和实现总结如下: 简介:    排序是数据处理中经常使用的一种重要运算,并且排序本身对推动算法分析的发展也起很大作用。    1、插入排序(直接插入排序、折半插入排序、希尔排序);    2、交换排序(起泡排序、快速排序);    3、选择排序(直接选择排序、堆排序);    4、归并排序;    5、基数排序; 

程序人生 5525

排序算法及三种基本排序(冒泡排序、选择排序、直接插入排序)

一、排序的分类及效率分析 二、三种基本排序(冒泡排序、选择排序、直接插入排序)的java代码实现 /* 三种基本排序:T(n) = O(n的平方),S(n) = O(1) 1、直接选择排序 不稳定的排序 2、冒泡排序 稳定的排序 3、直接插入排序 稳定的排序 */ public class BasicSort { public...

Anna4的博客 1012

排序算法(快速排序、直接插入排序、直接选择、冒泡排序)

typedef int T;//冒泡排序算法void BubbleSort(T V[],int n){     bool exchange; int i,j; for(i=1;i {     exchange=false;//交换标志 for(j=n-1;j>=i;j--) if(V[j-1]>V[j]) {     T temp=V[j-1]; V[j-1]

行也思君 1174

Java中几种排序算法

1、冒泡排序算法 通过多次比较(相邻两个数)和交换来实现排序 public class bubble { public static void bubbleSort(int[] a) { int temp; for (int i = 1; i < a.length; i++) { //将相邻两个数进行比较,较大的数往后冒泡 fo...

~~~的博客 5223

五、排序算法之简单算法——冒泡排序、简单选择排序和直接插入排序

废话不多说,先来个笑话(声明笑话转载): 最近的国际局势就像这样,美帝喊:有种放学别走! 乌克兰大叫:老子喊人揍死你。 欧盟嚷嚷道:下课就动手!! 普大帝冷冷的说:放学了啊,到底打不打我呀,不打我走了。 进入正题,学算法不可能不提排序,排序算法主要分为:简单算法和改进算法,前者主要有冒泡排序、简单选择排序和直接插入排序;后者主要有希尔排序(改进自直接插入排序)、堆排序(改进自简单

kukutengteng的专栏 2167

c语言排序算法——直接上代码

排序目录(一)插入排序(1)直接插入排序(2)希尔排序(二)交换排序(1)冒泡排序(2)快速排序(三)选择排序(1)简单选择排序(2)堆排序(四)归并排序(五)基数排序 (一)插入排序 (1)直接插入排序 插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 算法步骤: 1)将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。 2)从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适

IT_demon的博客 2440
上一篇: 用C++实现单链表的创建、逆置和输出
下一篇: Josephus(约瑟夫环)问题
lfeng_coding
博客等级 码龄11年 77粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值