黑马程序员——java基础排序算法:选择排序、冒泡排序和插入排序

十大常用排序算法(java实现) 十大常用排序算法(java实现),冒泡排序,简单选择排序等 立即下载

——- android培训、java培训、期待与您交流! ———-
/*
需求:将一组数组中的数从小到大排序
一、选择排序法思路:
1.用数组中第一个元素和之后的每个元素相比较,如果第一个元素大,则交换
两个数的位置,这样最小的元素便排到第一位。依次用第二个元素,第三个元
素……倒数第二个元素与排在其后面的元素比较,如果前面的数值大交换两个
数对应的下标。
2.当数组中所有元素两两比较完后,这个数组便按照从小到大的顺序排好了
步骤:
1.使用嵌套循环对数组遍历,外循环控制数组任意两元素中前面的元素的下标,
内循环控制后面元素的下标。
2.在内循环循环变量的初始值与外循环的循环变量值的变化相同,且内循环变量
的最大值为数组元素个数碱一,计算数组元素个数使用函数“数组名.length”,(计算
字符串的长度用“数组名.length()”)。
3.在内循环体中,定义一个条件,如果前面的元素数值大于后面元素的数值,交换
两个元素下标。
*/

public static void selectSort(int[] arr)
    {
        //外循环控制前面的元素
        for(int x = 0; x < arr.length ;x++ )
        {
            //内循环控制后面的元素
            for(int y = x; y < arr.length-1 ; y++ )
            {
                //前面的元素数值大于后面元素,交换两个元素下标
                if(arr[y] < arr[x])    
                {
                    int temp;
                    temp = arr[y];
                    arr[y] = arr[x];
                    arr[x] = temp;
                }
            }
        }
    }

二、冒泡排序法思路:
1.依次比较数组中相邻两元素的大小,如果前面元素比后面元素大,交换它们
的下标。经过一轮的多次比较后,数值最大的一个元素便排在最后。
2.这样每经过一轮比较需要比较的元素便少一个,一直到剩下一个元素。此时,
该数组便按照从小到大的顺序排好了。
步骤:
1.使用嵌套循环,外循环控制循环的轮数,内循环控制数组中需要比较的元素的下标。
2.外循环变量的初始值从1开始,总共需要arr.length-1轮循环。内循环变量每次都从0 开
始,内循环的最大值是元素总数减去循环的轮数(外循环变量)
3.内循环体中,定义一个条件,如果前面的数值大于后面的,则交换两个数的下标。

public static void bubbleSort(int[] arr)
    {
    //外循环控制循环的轮数
    for(int x = 1; x < arr.length; x++)
        {
        //内循环控制比较元素的下标
        for(int y = 0; y < arr.length-x ;y++)
            {
                if(arr[y] > arr[y+1])
                {
                    int temp;
                    temp = arr[y];
                    arr[y] = arr[y+1];
                    arr[y+1] = temp;
                }
            }
        }
    }

三、插入排序法思路:
1.从第二个元素开始依次取出数组中后面的元素。
2.每取出一个元素就不断循环地与排好序的数据比较,将其放在合适的位置。直到把
最后一个数据插入到合适位置。
步骤:
1.从第二个元素开始依次取出数组中的元素,因为取出的数不断变化,将其赋给变量
2.使用while语句循环地比较取出的数剧与排好序的数据,如果取出的数比排在其前面的
数小,将排在其前面的数后移一位,直到该取出数被排到第一位,或者比排在其前面的
数大为止。
3.最后将储存在变量中的数放在找到的位置上。

public static void insertSort(int[] arr)
    {
    for(int i = 1; i < arr.length; i++)
        {
            int m = arr[i];  //变量m中存放取出的数据
            int j = i-1;  //变量j表示取出的数据(下标为i)的前一位
            while(j >= 0 && arr[j] > m)
            {
                arr[j+1] = arr[j]; //将排在取出数据前面数据的后移一位
                j--;    //不断减小前一位的下标
            }
            arr[j+1] = m;   //跳出while循环的j多碱了一次
        }

四、验证

class PaiXu
{
    //主函数
    public static void main(String[] args) 
    {
        int[] col = {5,52,23,2,8,95,52,30};
        daYin(col);   //打印原始数组
        System.out.println("------------------------------------------------");
        selectSort(col);  //使用选择排序法按从小到大排序
    //  bubbleSort(col);  //使用冒泡排序法按从小到大排序
    //  insertSort(col);  //插入排序法按从小到大排序
        daYin(col) ;  
    }
}

选择排序、冒泡排序和插入排序的结果如下:
这里写图片描述

 ——- android培训、java培训、期待与您交流! ———-

基于卷积神经网络的人脸识别算法 摘要:近年来,随着科学技术的不断发展,人脸识别技术日渐成熟,使得人脸识别技术的使用率不断增大。例如:门禁、ATM机、公安系统以及新兴起的人机交互等领域,都应用到了人脸识别系统。在人脸识别研究领域中,深度学习扮演着重要的角色。由于深度学习的人脸识别技术凭借其识别率高、识别快等特点,逐渐成为整个领域的主流技术。在众多深度学习算法中,以卷积神经网络为代表的人脸识别系统得到了广泛应用,主要研究内容如下:首先,通过对经典损失函数进行研究,对比每种损失函数的特点,然后根据A-Softmax函数进行改进,借助Margin 阅读详情

相关推荐

大学物理第二章 质点动力学详解

大学物理第二章 质点动力学概念详解

weixin_63026364的博客 1万+

黑马程序员__JAVA基础__数组

-------android培训、java培训、java学习型技术博客、期待与您交流! ------------   1.定义 数组是一种单独的数据类型,其属于三种引用数据类型当中的一种。 概念:     同一种类型数据的集合,其实数组就是一个容器(就是用于存储数据的一种方式)。 好处:     可以自动给数组中的元素从0开始编号,方便操作这些元素。 格式:     1.元素类型

有志者、事竟成、破釜沉舟 592

IWR6843ISK+DCA1000EVM 本人遇到的所有报错和解决方案

本文详解了初次使用DCA1000EVM和mmave studio遇到的一系列的问题以及解决方法

2301_77883976的博客 3312

十大经典排序算法(Java版本)

排序算法的重要性不言而喻,为了加深对这十种算法的理解,固写此文。 目录 1、冒泡排序(Bubble Sort) 2、选择排序(Selection Sort) 3、插入排序(Insertion Sort) 4、希尔排序(Shell Sort) 5、归并排序(Merge Sort) 6、快速排序(Quick Sort) 7、堆排序(Heap Sort) 8、计数排序(Counting Sort) 9、桶排序(Bucket Sort) 10、基数排序(Radix Sort) 首先可用如下表来

m0_64354070的博客 1370

Godot 2D游戏开发实战:用GDScript复刻10款经典小游戏(附完整源码)

本文是一份Godot 2D游戏开发实战指南,通过使用GDScript语言复刻10款经典小游戏,帮助开发者快速掌握引擎核心功能。内容涵盖从环境配置、GDScript基础到贪吃蛇、Flappy Bird、打砖块、俄罗斯方块等项目的核心逻辑与代码实现,并附有完整源码,旨在通过实践提升独立开发能力。

gold的博客 779

iTerm2+oh-my-zsh最全配置

iTerm2+oh-my-zsh最全配置安装前先看效果图一.安装[iTem2](https://iterm2.com/)二.安装[oh-my-zsh](https://ohmyz.sh/)三.安装[Powerline](https://powerline.readthedocs.io/en/latest/installation.html)四.安装 [Meslo](https://github.com/powerline/fonts) 字体库五.安装agnoster主题六.安装语法高亮七.安装代码补全插件八

xinximo的博客 2611

详解Java常用排序算法(10种,含演示动画)

Java常用的排序算法有以下几种: 1. 冒泡排序;2. 选择排序;3. 插入排序;4. 希尔排序;5. 归并排序;6. 快速排序;7. 堆排序;8. 计数排序;9. 桶排序;10. 基数排序。 这些排序算法都有各自的优缺点,应根据具体情况选择适合的算法。

不积跬步无以至千里,不积小流无以成江海。一个喜欢学习分享的程序员 3万+

图像质量评估(5) -- 畸变(Distortion)

当图像中原本应该是直线的地方看起来发生了不自然的变形或扭曲时,我们称为图像畸变。有三种类型的镜头畸变:桶形畸变(后文使用英文barrel),枕形畸变(后文使用pincushion)和胡子畸变(后文使用英文wavef或mustache,这种畸变里包含了桶形畸变和枕形畸变)。有一个重要的点需要注意,根据透镜的类型以及透镜是否能够从相机中移除等条件不同,畸变会有不同的表现。 总的来说,旋转对称光学系统功能上会产生和物体几何相似的图形。但也有少数特殊的系统是例外,例如鱼眼镜头,这种镜头几何是故意设计为

vivo01的专栏 2万+

java7种排序(需熟练掌握)

java7种排序算法 文章目录java7种排序算法@[toc]1.冒泡排序2.插入排序3.选择排序4.希尔排序5.归并排序6.快速排序7.基数排序(基于桶排序) 1.冒泡排序 public void bubbleSort(int[] array){ for (int i = 0; i < array.length-1; i++) { boolean flag=false; for (int j = 0; j <array.lengt

qq_53280986的博客 3639

智能门禁:AI Agent的访客意图识别

随着人工智能技术的飞速发展,智能门禁系统已经成为现代安全管理的关键环节。本文深入探讨了AI Agent在访客意图识别中的应用,通过详细的分析和实例讲解,揭示了智能门禁系统的核心工作原理、算法实现及其在安全领域的重要作用。文章结构清晰,逻辑严谨,旨在为广大技术爱好者提供一次全面的技术盛宴。在当今社会,门禁系统已成为各类建筑和机构不可或缺的安全设施。随着信息安全意识的增强,传统门禁系统的局限性逐渐显现。例如,在访客管理方面,传统方法通常依赖于人工登记、身份验证等手段,不仅效率低下,而且容易出现漏洞。

AI架构师小马 711

从登录到应用可见:在 SAP S/4HANA Cloud Private Edition 中创建用户与打通 SAP Fiori 权限的完整思路

在SAP S/4HANA系统中,用户创建远非简单的账号开通,而是涉及认证、授权、数据访问等多维度的复杂过程。用户主数据记录(User Master Record)是系统访问的起点,包含登录方式、角色分配等关键信息。认证解决"你是谁"的问题,授权则决定"你能做什么"。SAP Fiori访问链路涉及Launchpad内容分配、应用启动映射、OData服务权限等多层校验。角色(Role)通过PFCG维护,包含业务目录(Catalog)和空间(Space)等元素,共同构成完整

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 150

用Java实现五种基础排序方法

用Java实现五种基础排序方法

2302_81390361的博客 2724

化工设计软件:PDMS二次开发_(9).项目案例分析与实战

在化工设计项目中,材料的选择和管理是至关重要的环节。PDMS自带的材料数据库可能无法完全满足特定项目的需求,因此需要进行自定义材料数据库的二次开发。本案例的目标是创建一个自定义材料数据库,并将其集成到PDMS中,以便设计团队能够方便地使用这些材料进行设计。材料名称:材料的唯一标识符。材料类型:如金属、塑料、复合材料等。材料属性:如密度、热导率、耐温范围等。// 定义材料类set;} // 材料名称set;} // 材料类型set;} // 密度set;} // 热导率set;} // 最低耐温。

kkchenjj的博客 574

黑马程序员_Java中几种排序算法

------- android培训、java培训、期待与您交流! ---------- 1)  ------- android培训、java培训、期待与您交流! ----------

limumu100的专栏 555

pscad IEEE标准系统搭建说明

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

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JAVA黑马程序员之排序算法(冒泡排序、选择排序、插入排序、递归算法、快速排序)

java基本排序算法

weixin_52924358的博客 1070

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

“黑马程序员”基础测试

距我报名开始自学黑马,已经有一个月了。 期间还要工作

ZHOU_XIAO_BING的专栏 1005

VB摄像头监控

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

黑马程序员---Java中常见的排序

——- android培训、java培训、期待与您交流! ———-  Java中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。 1、冒泡排序冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数

ChaoYangMemory的博客 486

黑马程序员—学习笔记—各种排序法

- -----Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- JAVA中的排序算法一般主要有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。 快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。 冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。 选择排序法是将数

a1014428289的博客 475

黑马程序员_排序算法解析

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

LoveMyAbel的专栏 706

黑马程序员-----排序算法总结

------Java培训、Android培训、iOS培训、.Net培训期待与您交流! -------    如下图所示,排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们通常所说八大排序是指的内部排序。      在实际的编写代码的过程中,如果需要对数组进行排序,简单的一个函数Array

YJDZY的博客 644

黑马程序员_常见排序算法:冒泡排序、选择排序和插入排序

------- android培训、java培训、期待与您交流! ---------- ------- android培训、java培训、期待与您交流! ----------

f311000的专栏 366

八大排序——JAVA,万字总结(堆排序除外)

博客主页(4条消息) 小吴_小吴有想法_优快云博客-笔记,java,leetcode领域博主 欢迎关注点赞收藏和留言 天道酬勤,勤能补拙,和小吴一起加油吧 17岁大一新生,水平有限,恳请各位大佬指点,不胜感激! ????这里有一点路线小伙伴可以参考一下哈(4条消息) JAVA实现客户信息管理系统以及给大一寒假学生的建议_小吴-优快云博客 参考书籍《算法4》,学习视频:黑马程序员Java数据结构与算法黑马程序员Java数据结构与java算法,全网资料最全数据结构+算法教程,154张java数据结

小吴 1418

黑马程序员- java中的排序

------- android培训、java培训、期待与您交流! ---------- 1.插入排序 原理:假设前面n-1个元素是已经排序好的(按顺序从小到大)。将第n个元素依次与前面的n-1个元素比较(从最邻近的元素开始做比较),如果比它前一个元素小,则插入到前面元素位置(即交换位置),直到它前一个元素比它小为止 代码: public void insertSort(int[]

forTomorrow_java的博客 530

简单排序之冒泡排序、选择排序和插入排序

图文并茂的讲解常见的冒泡排序、选择排序以及插入排序原理。

weixin_45266856的博客 128

黑马程序员_Java各种排序汇总

-----------android培训、java培训、java+3G学习型技术博客、期待与您交流!------------   package com.softeem.jbs.lesson4;   import java.util.Random;   /**  * 排序测试类  *  * 排序算法的分类如下:  * 1.插入排序(直接插入排序、折半插入排序、希尔排序);

Delicate 270

数据结构——排序

数据结构Java 排序简单排序(冒泡、插入、选择),高级排序(希尔、递归、快速),排序的稳定性

m0_51530927的博客 4247
下一篇: 黑马程序员——Java基础查找算法:顺序查找和二分查找
java888kankan
博客等级 码龄12年 1粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值