选择排序-八大排序(二)

八大排序之选择排序 直接选择排序思考非常好理解,但是效率不是很好。实际中很少使用时间复杂度:在插入排序中,当待排序序列是有序时,是最优的情况,只需当前数跟前一个数比较一下就可以了,这时一共需要比较n- 1次,时间复杂度为O(n)。最坏的情况是待排序数组是逆序的,此时需要比较次数最多,总次数记为:1+2+3+…+N-1,所以,插入排序最坏情况下的时间复杂度为O(n^2)。平均来说,array[1…j-1]中的一半元素小于array[j],一半元素大于array[j]。 阅读详情

先说选择排序思路:

1.选择排序一共进行数组大小减一轮排序
2.每轮排序又是一个小循环:循环的规则
2.1先假定当前这个数是最小数、
2.2然后和后面的每个数进行比较,如果发现有比当前数
更小的,就重新确定最小数,并得到小标
2.3挡遍历到数组的最后时,就得到本轮的最小数和小标
2.4如果发生更小的值就交换

首先写selectSort选择排序方法

 static int count;//用来记录每次排序的次数
    public  static void selectSort(int []arr){
        for (int i = 0; i <arr.length-1 ; i++) {
            int min=arr[i];
            int minIndex=i;
            //每次循环找出最小值
            for (int j = i+1; j <arr.length ; j++) {
                if (min>arr[j]){
                    min=arr[j];//把最小值赋值给min
                    minIndex=j;//把索引赋值给minIndex
                }
            }
            if(minIndex!=i){//如果找到更小的值就进行交换
                 arr[minIndex]=arr[i];
                 arr[i]=min;
            }
            count++;
            System.out.printf("第%d轮:"+Arrays.toString(arr),count);
            System.out.println();
        }

然后测试

   public static void main(String[] args) {
    int arr[]=new int[]{1,2,6,3,0,5};
        System.out.println("排序前"+Arrays.toString(arr));
        selectSort(arr);

这是结果图

在这里插入图片描述

PCB过孔电流承载解析:完整指南与数据参考 深入解析PCB过孔的电流承载能力,结合实际应用场景提供可靠设计参考。涵盖影响载流的关键因素,并整理实用的pcb过孔与电流对照一览表,帮助工程师优化布局与布线。 阅读详情

相关推荐

台积电技术研发实力

台积电技术研发实力 台积电在半导体行业的地位毋庸置疑。他们究竟有多强大,大部分读者了解得可能非常片面。从最新公布的2019年财报里,看看台积电的真正实力。 一、台积电在市场上的地位 根据公司财报,台积公司在先进制程技术、特殊制程技术,以及先进封装技术的发展上持续领先全球集成电路制造服务领域,2019年的市场占有率为52%。台积公司总体营收以地区划分(主要依据客户营运总部所在地),来自北美市场的营收占台积公司总体营收的60%、日本与中国大陆以外的亚太市场占9%、中国大陆市场占20%、欧洲、中东及非洲市场占6

吴建明wujianming_110117 1902

【八大排序(二)】选择排序与堆排序

本篇文章主要介绍了选择排序,包括单向选择排序和双向选择排序,以及堆排序,希望同学们能够熟练掌握各种排序的时间复杂度,空间复杂度,和稳定性。

weixin_69049913的博客 1312

光学薄膜设计入门:Essential Macleod中文版从安装到实战全攻略

本文为光学薄膜设计初学者提供Essential Macleod软件从安装部署到实战应用的全流程中文指南。详细解析了软件核心界面、材料管理及工作流程,并通过一个完整的宽带增透膜设计实例,手把手演示膜系构建、优化与分析方法,帮助用户快速掌握这一业界标杆工具,跨越理论与实操的门槛。

weixin_29309475的博客 988

【八大排序②】选择排序(选择排序,堆排序)

目录 一、选择排序关于选择排序 算法步骤:代码实现 【直接选择排序的特性总结】 二、堆排序堆排序算法的基本思想 【直接选择排序的特性总结】选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间。 【直接选择排序的特性总结】 之前我们已经介绍过了大根堆、小根堆的概念,而堆排序就是利用堆(排升序建大根堆,降序建小堆)进行排序的方法。如图,就是一个大根堆,90为最大值,将90与20(末尾元素)互换

Living_Amethyst的博客 251

gesp c++ 八级知识点

gesp c++ 八级知识点

MMD.然大大 2246

告别环境配置烦恼:Docker容器化一站式搭建Zephyr RTOS开发环境

本文详细介绍了如何使用Docker容器化技术一站式搭建Zephyr RTOS开发环境,彻底解决环境配置不一致、依赖冲突等难题。通过预构建镜像、数据卷挂载和实战编译示例,帮助开发者快速获得隔离、一致且可复现的嵌入式开发环境,大幅提升开发效率和团队协作体验。

n8m7b6v5c4的博客 189

Python八大排序(二)——选择排序

代码如下: #2.简单选择排序:比较+交换 每次从剩下的挑最小的放在前面 #第一层循环:依次遍历序列中每一个元素 #第二层循环:将遍历得到的当前元素依次与余下的元素进行比较,符合最小则交换。 def Select_sort(num_list): for i in range(len(num_list)): min_value_index = i for j ...

even160941的博客 218

西门子S7-1200 PLC与伺服电机控制实战解析

工业自动化控制系统中,PLC(可编程逻辑控制器)与伺服电机的协同工作是实现精密运动控制的核心技术。通过PROFINET工业以太网协议,PLC可以高效地控制多台伺服电机,实现定位、同步和插补等复杂运动。在实际工程应用中,硬件组态的正确配置和运动控制算法的优化是关键挑战。本文以西门子S7-1200 PLC控制五台伺服电机的项目为例,详细介绍了从硬件组态、运动控制程序实现到HMI界面设计的全流程。特别针对多轴同步插补运动、动态速度曲线调整等特殊工艺需求,提供了实用的解决方案和调试技巧,为工业自动化领域的工程师提供

weixin_30252709的博客 497

八大排序之——选择排序(二)

概述 图示 代码

146

robot framework循环读取excel表操作

robot framework循环读取excel表操作 1、安装excellibrary,注意python3.7版本,需安装:robotframework-excel,robotframework-excellibrary-xwfintech 注意:网上有很多excel处理的,都是基于python2.7的,还有一些对python3以上都是修改包的方式,其实都不需要,在pip官网上有python3以上的excellibrary,名称是robotframework-excellib 2.0.0,但是该包关键字不

余墨的博客 1321

libcrypto.so.10(OPENSSL_1.0.2)(64bit) is needed by erlang-22.0.7-1.el7.x86_64

今天安装Rabbitmq的 erlang-22.0.7-1.el7.x86_64.rpmrpm包时遇到了这个坑,害找到说是不容易;错误信息在下面; [root@iz2zef7u84js1qeeq00ewwz RabbitMQ]# rpm -ivh erlang-22.0.7-1.el7.x86_64.rpm warning: erlang-22.0.7-1.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY error:

qq_45782349的博客 5784

八大排序-选择排序(二)

八大排序-选择排序(二) 选择排序原理:从0索引处开始,依次和后面的元素进行比较,小的元素往前放,经过一轮比较后,最小的元素出现在了最小索引处 具体代码: import java.util.Arrays; public class ArrayDemo2 { public static void main(String[] args) { //选择排序原理:从0索引处开始,依次和后面的元素进行比较,小的元素往前放,经过一轮比较后,最小的元素出现在了最小索引处 in

Xun_independent的博客 137

vue2/3 - 详细实现内网使用离线高德地图功能,在vue中无需网络离线使用高德地图相关功能,高德地图如何离线加载详细教程(内网部署及使用),提供最新完整的瓦片资源下载及相关工具(示例代码,一键复制

vue,vue2,vue3,高德地图,离线使用高德地图,高德地图瓦片官方下载,vue内网使用高德地图离线无网络,断网情况下使用高德地图,vue离线高德地图教程,如何实现内网部署高德地图,无需联网离线使用,vue+ts实现离线高德地图 内网离线高德地图,如何在高德地图Vue项目中下载离线地图,高德离线地图加载不出来,高德地图离线使用不显示怎么办,怎么解决vue内网使用离线高德地图加载失败问题,vue实现离线地图+高德瓦片,vue引入高德离线地图,vue项目如何使用离线高德地图和自定义地图样式,高德离线地图的下

✅ 精选推荐文章 1万+

八大排序方法(二):桶排序、选择排序、插入排序、希尔排序

具体来说,希尔排序通过定义一个间隔(gap),先对间隔内的元素进行插入排序,接着逐步缩小间隔,直到最终间隔为1,此时进行普通的插入排序,最终使得整个数组有序。:对于当前的元素(假设是 arr[i]),将其与已排序部分的元素进行比较,从已排序部分的最后一个元素开始,一直到第一个元素,找到合适的位置(即比 arr[i] 小的元素的位置),并将 arr[i] 插入该位置。,其基本思路类似于我们整理扑克牌的过程:从第二张牌开始,与前面的牌比较,将其插入到合适的位置,直到所有的牌都整理完成。

2301_78125917的博客 1559

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

八大排序算法(二)简单选择排序

基本操作: 选择排序(select sorting)也是一种简单的排序方法。 它的基本思想是:第一次从arr[0到]arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]到arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]到arr[n-1]中选取最小值,与arr[2]交换,…,第i次从arr[i-1]arr[n-1]中选取最小值,与arr[i-1]交换,…, 第n-1次从arr[n-2]~arr[n-1]中选取最小值,与arr[n-2]交换,总共通过n-1次,得到一个

海角12138的博客 177

STM32F407中文手册

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

八大排序算法之 二 选择排序---简单选择排序算法

http://kb.cnblogs.com/page/176818/ package primary; public class SimplySelectSort { public static void main(String[] args){ int[] array = {2,6,1,9,4,3,23,65,0,7}; ...

angjiu8534的博客 68

八大排序算法之 二 选择排序---堆排序算法

123 转载于:https://www.cnblogs.com/RunForLove/p/4358393.html

angjiu8534的博客 159

数据结构常用算法总结(二)手写八大排序(插入,希尔,简单选择,冒泡,快排,归并,堆排,基数排序)

1,插入排序 2,希尔排序 3,简单选择排序 4,冒泡排序 5,快速排序 6,归并排序 7,堆排序 8,还有桶排序,较为简单 #include<iostream> #include<vector> using namespace std; //1,插入排序 void insertSort(vector<int>&a){ for (int i = 1; i < a.size(); i++) {//插入排序,处理第i个数据 for (int j = i

weixin_42445051的博客 281

【数据结构】八大排序

八大排序

2203_76003626的博客 3483

《数据结构初阶》【八大排序——群英荟萃】

博客内容主要划分为:八大排序算法的介绍+八大排序算法的实现。全篇共计1.5w字,涉及的排序算法有:直接插入排序、希尔排序、简单选择排序、堆排序、冒泡排序、快速排序、归并排序和计数排序。(博主力推,内容绝对详实!!!)

序属秋秋秋的博客 2400

八大排序算法详解(通俗易懂)

排序算法很重要,本篇重点讲解它,如果本篇博客对你有所帮助,请给博主一个三连哦!

weixin_61661271的博客 2万+

【八大排序(十)】八大排序效率与稳定性分析

八大排序效率以及稳定性分析详解,内附八大排序全部代码,以及图文讲解,看完就会的细!

杭电码农-NEO的博客 3054

【八大排序之插入和选择排序】

排序的重要性相信大家都早已经听老师提及,无论是笔试还是面试,几乎都会考查到排序问题。本次博主分享的是排序中的插入和选择排序,交换排序和并归排序将在下次博客分享,如果哪儿有什么不对的地方欢迎各位大佬在评论区中指正。...

m0_68872612的博客 2434

八大排序算法

排序是计算机科学中最基础、应用最广泛的算法之一。它将一组无序的数据元素(或记录)按照某种特定的顺序(如升序或降序)重新排列,是数据检索、统计分析、高效算法设计等众多领域的基石。本章总结了学习过程中八大排序算法,包括比较排序和非比较排序。

努力学习C++的熊大(保护森林版) 2337

js实现八大排序

本文使用js实现数据结构中的八大排序算法:直接插入排序、shell排序、简单选择排序、堆排序、冒泡排序、快速排序、归并排序、基数排序,并对比这八种排序算法的时间、空间复杂度以及稳定性,给出我们选择排序算法的主要依据。

YongxiaWu的博客 4843
上一篇: 冒泡排序-八大排序(一)
下一篇: 插入排序-八大排序(三)
来来爱编程
博客等级 码龄7年 375粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值