简单排序

【数据结构】简单排序(直接插入排序、冒泡排序、简单选择排序) 注:以下排序都为升序 1、简单排序 1.1 直接插入排序 具体做法: 1、在插入第i个记录时,R1,R2,…,R(i-1)已经排好序 2、这时将记录Ri的关键字Ki依此与关键字K(i-1),K(i-2),…,K1进行比较,从而找到Ri应该插入的位置,插入位置及其后的记录依此向后移动。 例子:对9,8,4,25,3,6,19进行直接插入排序 1、从第1个元素9开始,该元素可以认为已经被排序 2、取第2个元素8,9>8,所以9向后移一位,8插入9的前面 8,9, 4,25,3,6,19 3、取第 阅读详情
import java.util.Random;//随即从内存生成
import java.util.Arrays;//java现有的类方法为数组提供排序等等功能

public class TestSort {
	public static void main(String[] args) {
		Random r=new Random();
		SortArray s=new SortArray();
		int[] array=new int[10];
		for(int i=0;i<array.length;i++){
			array[i]=r.nextInt(1000);//默认随机生成[0,1000)区间的数 
		}
		System.out.println(Arrays.toString(array));
		s.sort(array);
		System.out.println(Arrays.toString(array));
		
		int[] m=new int[]{15,54,87,55,2};
		s.Maopao(m);
		System.out.println(Arrays.toString(m));
		s.xuanzhe(m);
		System.out.println(Arrays.toString(m));
	}
	
}
class SortArray{
	//插序
	void sort(int[] arr){
		int temp;
		for(int i=1;i<arr.length;i++){
			temp=arr[i];
			int j=i-1;
			for(;j>=0&&arr[j]>temp;j--){
				arr[j+1]=arr[j];
			}
			arr[j+1]=temp;
		}
	}
	//冒泡
	void Maopao(int[] arr){
		for(int i=0;i<arr.length-1;i++){
			for(int j=0;j<arr.length-1-i;j++){
				if(arr[j]>arr[j+1]){
					swap(arr,j,j+1);
				}
			}
		}
	}
	//选择
	int[] xuanzhe(int[] arr){
		for(int i=0;i<arr.length-1;i++){
			int t=i;
			for(int j=i+1;j<arr.length;j++){
				if(arr[t]>arr[j]){
					t=j;
				}
			}
			if(t!=i){
				swap(arr,t,i);
			}
		}
		return arr;
	}
	void swap(int[]arr ,int i,int j){
		int temp=arr[i];
		arr[i]=arr[j];
		arr[j]=temp;
	}
}


 

排序 —— 简单选择排序 一、算法思想 选择表L的最大(小)元素,与最后位置上元素交换。其步骤如下: 对于表 L=(a1,az,a3,.…,ai.…,an),顺序遍历,选择出最大元素所在位置,与最后位置元素交换; 对于除最后一个元素之外的剩余部分构成的子表重复(1),直到剩余部分构成的子表表长等于1为止。 二、算法过程 ... 阅读详情

相关推荐

python123题目——个税计算器

类型:简单分支。

m0_62488776的博客 5806

简单选择排序

文章目录简单选择排序的工作原理时间复杂度分析案例分析代码实现 简单选择排序的工作原理 选择排序(Selection sort)是一种简单直观的排序算法。 它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的...

Joy 3万+

【Web攻防】SQLMap实战进阶:从数据猜解到高权限渗透的全流程指南

本文介绍了SQLMap工具在Web安全渗透测试中的实战应用,重点讲解了数据猜解、高权限操作、复杂请求提交、Tamper脚本开发和指纹绕过等核心场景。文章提供了可直接复用的命令示例,包括数据库信息获取、文件读写、命令执行等操作,并详细说明了POST/JSON/Cookie注入的实现方法。同时,介绍了Tamper脚本的开发模板和指纹伪装技巧,帮助降低检测风险。最后强调SQLMap在自动化渗透全链路中的价值,从漏洞发现到权限提升的完整流程,并提供了优化测试效率的实用建议。所有技术内容仅限合法授权场景使用。

YsChunQiu777的博客 442

排序——简单排序

简单排序有三种,包括选择排序(Selection Sort)、冒泡排序(Bubble Sort)和插入排序(Insert Sort)。 选择排序每次都选择最小的关键码记录,直到完全排序。实质上就是起泡排序。选择排序第 i 趟选择的是数组中第 i 小的记录,并将这个记录放到数组的第 i 个位置。 特点:大部分时间都在比较,很少交换。 在寻找下一个较小的数时,需要检索整个未排序的序列,但只用一...

魔筝炼药师 7264

Vue3多级路由缓存失效的深度解析与实战解决方案

本文深度解析了Vue3项目中多级路由嵌套下keep-alive缓存失效的根本原因,并提供了三种实战解决方案。通过剖析组件树、router-view与keep-alive的协作机制,揭示了缓存无法穿透多层router-view的技术本质。文章对比了路由扁平化重构、状态管理配合路由守卫以及使用社区插件等方案的优缺点与适用场景,为开发者解决这一常见难题提供了清晰的选型指导。

weixin_29001423的博客 273

(保姆式教程:从下数据到画图)python如何利用EOF分析SSTA海温异常现象并画图

保姆式教程,教你如何利用python分析1979-2004年的太平洋地区的海温异常SSTA,并且绘制出空间模态和时间序列的图片。

shayuxing的博客 2万+

选择排序之简单选择排序

1.引言一听到选择排序的词第一反应都是要通过选择来排序,那么我们的第一反应是不是对的呢,我们接下来验证一下,了解一下它的定义。简单选择排序:最简单的选择方法是顺序扫描序列中的元素,记住遇到...

算法与编程之美 6460

MyEclipse 2017 CI 10安装与激活

本文介绍MyEclipse 2017 CI 7、CI 8、CI 9和CI 10的安装与激活。此方法理论上应该能激活MyEclipse 2017 CI所有系列,即激活方法是通用的,只是激活文件略有不同。本文提供MyEclipse 2017 CI 7、CI 8、CI 9和CI 10的激活文件。说明:博主所提供的压缩包格式均为RAR5,即WinRAR 5.0以上的版本才能正常解压,别的压缩软件博主不太清...

weixin_42539046的博客 9418

排序之简单选择排序

基本思想:每次都从剩下的记录中选出关键字最大或者最小的来排序。 简单选择排序是不稳定排序,平均时间复杂度:,可以这样理解,就是最差的情况我们要对比多少次才能得到最终的排序,一共是: 然后需要平移的次数最差是n次,所以,时间复杂度为: 图示: C++程序: intsimpleSelect(int*pArray,intlen) { if(NULL==pArray...

上善若水,为而不争 448

Jetson Orin Nano@Ubuntu22.04:IMX219 CSI摄像头配置全流程与避坑指南

本文详细介绍了在Jetson Orin Nano@Ubuntu22.04系统上配置IMX219 CSI摄像头的全流程,包括硬件安装、驱动配置、常见问题排查及性能优化。特别强调了排线方向、驱动模式选择等关键细节,并提供了实用的命令和解决方案,帮助开发者高效完成摄像头部署与调试。

prometheus9mon的博客 321

2025银行面试攻略:投行债权融资岗深度解析与面试剖析

债券融资业务岗聚焦于债券类产品的发行与承销,涵盖公司债、企业债、银行间市场债务融资工具等多种品种,要求从业者具备深厚的专业积累、丰富的项目实操经验、敏锐的政策洞察力以及卓越的沟通协调能力。

王国平的博客 426

排序算法5——简单选择排序

选择排序就是从待排序的元素中选择最小(最大)的元素,将其放在有序序列的相应位置,使这些元素构成有序序列。选择排序主要有两种:简单选择排序和堆排序。 【简单选择排序】 编写算法,要求使用简单选择排序算法对元素65、32、71、28、83、7、53、49进行从小到大排序。 【算法思想】 简单选择排序是一种简单的选择类排序算法,它的基本思想描述如下: 假设待排序的元素有n个,在第一趟排序过程...

凌空的桨 5847

网神 SecGate 3600 防火墙 app_av_import_save文件上传漏洞(含批量验证poc)

网神 SecGate 3600 防火墙 app_av_import_save文件上传漏洞(含批量验证poc)

weixin_43567873的博客 299

简单排序算法之简单选择排序和直接插入排序

简单选择排序简述: 简单选择排序(Simple Selection Sort)可以说是冒泡排序的一种改版,它不再两两比较出较小数就进行交换,而是每次遍历比较当前数的后面所有数,最后再把最小的数和当前数进行交换。 排序前的准备: #define MAXSIZE 10 //顺序表结构 template struct SqList { T s[MAXSIZE + 1] = { NULL,

Tartarusi 5930

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

排序算法-简单选择排序

简单选择排序法就是通过n-i次关键字比较,找到最小的关键字下标,最后在替换n-i下标和最小下标的值。 简单排序的思想和冒泡排序的思想的区别是冒泡排序是相邻关键字两两比较,如果小,则直接替换,可能在一轮循环会进行多次值交换。而简单选择排序法是一轮循环找到最小关键字下标,最后进行最多一次替换。 简单选择排序算法 ...

白杨 3693

pscad IEEE标准系统搭建说明

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

简单排序算法:简单选择排序(选择排序)

简单选择排序法:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1 import java.util.Arrays; public class Solution { public static void main(String[] args) { Solution s = new Solution(); int[] arr

DirBee的博客 1369

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

简单选择排序详解

1、什么是选择排序? 选择排序是第一次从待排序的元素中选取最大值(或者最小值),将其放在序列的最前面,再从剩下的待排序元素中选取最大值(或者最小值)放入序列的最后,重复该操作直到剩下的待排序的元素的个数是0,选择排序是一种简单直观的排序算法。 2、简单选择排序和堆排序的关联 选择排序是从待排序的元素中选择最大值(或者最小值),然后将其放入序列中排序。选择排序分为简单选择排序和堆排序,简单选择排序和堆排序的区别在:从待排序的元素中选择最大值(或者最小值)的方式不同,简单排...

weixin_44713306的博客 7023

简单选择排序与堆排序

简单选择排序与堆排序

kjl167的博客 1050

简单选择排序与直接选择排序

是对元素直接排序 而先获取到元素的最大值或最小值下标再进行交换每次遇到n-1>n 的时候就要发生交换;则只是记录下较大那个元素的位置,这样一轮过后这个记录变身本轮所要选取的最大值,而每轮需要确定的位置已由外层循环确定,只需将最大元素位置记录所对应的元素与要确定的位置交换机可。话不多说直接上代码演示。

orehrepuS的博客 3924

其它排序:简单选择、桶排序

其它排序:简单选择、桶排序这是我们算法正式文章系列的最后一篇文章了,关于排序的知识我们学习了很多,包括常见的冒泡和快排,也学习过了不太常见的简单插入和希尔排序。既然今天这是最后一篇文章,也...

硬核项目经理 174

排序算法——冒泡排序、简单选择排序

冒泡排序实际上是一种交换排序,它的核心思想就是对相邻的记录两两比较,逆序交换,直到没有逆序 。简单插入排序算法主要思想是每次在剩余子序列中找到最小值并放到该子序列的第一个位置。 #include<iostream> using namespace std; void swap(int* a, int* b) { int temp; temp = *a; *a = *b; *b = temp; } void SelectSort(int* a, int length)// 简单选择排.

Unlock_zww的博客 290

简单选择排序_选择排序之简单选择排序(Java)

选择排序之简单选择排序(Java) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从arr[0]arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[...

weixin_39989159的博客 206

排序算法之简单选择排序

排序算法之简单选择排序简介代码实现性能分析 排序算法和查找算法一样是最常用最重要的算法之一,排序算法有交换排序、插入排序、选择排序和归并排序等,本专栏给大家介绍一些以上排序算法中的经典算法,今天先给大家介绍第一种——简单选择排序。本文完整代码见kfc/sort 简介 简单选择排序是选择排序的一种,选择排序原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从...

横扫天下的博客 706

简单选择排序和堆排序

文章目录1. 简单选择排序2. 堆排序 1. 简单选择排序       简单选择排序是一种不稳定排序算法,从未排序序列中选择关键字最小的元素与该序列中第一个关键字交换位置,每一趟排序可以确定一个元素的最终位置,空间复杂度:O(1),时间复杂度:O(n²)。 void SimpleSelectSort(ElemType A[], int n...

Xym's Blog 297
上一篇: 成员变量、局部变量和静态变量
下一篇: 求S=a+aa+aaa+aaaa+...+aaaa..的值,a是个数字 * 例如:2+22+222+2222+22222(此时共有5个数相加), 几个数相加由键盘控制
YanQiu_Only
博客等级 码龄10年 6粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值