bubblesortjava.冒泡排序是大学里教授的更高级的概念之一,它不仅可以帮助你理解for循环,还可以帮助你理解数组以及如何在索引中处理数组值。数组对于新程序员来说更难理解,但是它们对于Java开发人员来说是必不可少的。冒泡排序接受一个数字数组,并在数组索引中按升序或降序对它们进行排序。这意味着当您输出值时,您将输出一个有序的数字列表。

只是从Java开始?参加Java基础课程

Java For循环

如果您熟悉任何C样式语言,您可能熟悉环路。对于循环,通常与包含字符串或整数值的原始类型阵列一起使用。当您需要操纵或读取数组中的每个值时,请使用这些循环。对于循环是几乎每个Java程序的一部分,您可以在开始编程职业时保证运行到它们中。

泡泡排序入门

泡沫排序所需的第一个项目是一个整数数组。您可以有两千个整数进行排序。对于此示例,五个整数列表存储在名为“数字”的数组中。以下代码向您展示了如何在Java中创建一个整数数组:

Int [] numbers = {5,8,14,1,5678};

这行代码的第一部分是数组数据类型。“int[]”数据类型赋值告诉Java编译器,您正在设置一个整数的一维数组。括号被附加到数据类型后,表示它是一个数组变量。您可以对任何原始数据类型进行此操作。例如,使用" string[] "表示您正在定义一个字符串数组。

了解数据类型和Java函数

接下来,您需要设置临时变量。临时变量用于“移动”数据并在气泡排序期间将值从一个位置切换到另一个位置。稍后会更好地解释这一点。以下代码为泡沫排序创建一个临时变量:

int tempVar;

for循环模板和设置

使用两个用于循环的泡沫排序中的主要逻辑。第一个for循环通过整数阵列中的每个索引进行。嵌入式,第二个用于循环将当前索引值与阵列中的所有其他值进行比较。这是这个嵌入的第二循环,它是“冒泡”并移动值来对数组进行排序整数列表。

要开始,您首先设置“主”循环。以下代码为主循环创建模板:

for(int i = 0; i 
    

入门,虽然,做虽然和foreach循环

这个for循环有三个部分,用分号分隔。第一个定义了增量数(在本例中为“i”),用于循环遍历数组中的每个索引。Java数组以索引0开始,因此您的增量号应该始终初始化为0。第二部分定义了希望在for循环中进行的迭代次数。因为我们想遍历数组中的每一个数字,这一节基本上是说“从0循环到数组的最后一个下标”“数字。“Length”语法返回存储在数组中的整数的总数。最后一部分是自增操作符。“i++”语法是Java将整数加1的简写方式。

现在您需要嵌入的数组。嵌入式数组需要一个增量号,它是其封闭循环的循环。在此示例中,我们将使用“j”作为增量号。将以下代码添加到第一个循环中:

for(int i = 0; i 
    

在上面的代码中,“j”循环通过每个阵列元素作为循环的封闭“i”。所有业务逻辑和泡沫排序操作发生在循环的嵌入式“J”中发生。此循环的原因是您需要将索引中的每个值与所有其他值进行比较。当您比较每个值时,排序顺序中的最低编号在循环中逐个移动阵列,逐个。

逻辑的第一个比特是比较来自“i”循环的当前索引值和当前“j”循环值。如果“j”循环的值小于“i”索引的值,那么您需要切换这些值。这个概念很难理解,但是当您看到代码时,它会变得更容易理解。现在,您需要将Java if语句添加到嵌入的“j”循环代码中。将以下代码添加到冒泡排序中:

For (int I = 0;我< numbers.length;I ++) {for(int j = 0;j < numbers.length;if(numbers[i] > numbers[J + 1]) {}}}

请注意,“如果”语句将第一个循环中的当前索引与J Loop的“Next”值进行比较。“J + 1”允许您将当前号码与循环中的下一个数字进行比较。您将“+ 1”添加到嵌入式代码的当前索引的原因是因为要比较除了“i”索引中保持的数字之外的所有数字。因此,您正在比较除了您尝试泡沫的号码之外的所有数字。

在“if”语句中,执行实际的冒泡排序。" if "语句只在下一个索引中的数字小于当前的数字时执行。在这里可以实现前面用整数数组定义的临时变量。添加以下代码来完成冒泡排序:

for(int i = 0; i 数字[j + 1]){tempvar = numbers[J + 1];数字[j]=数字[i];数字[i] = tempVar;}}}

在if语句中,现在有3行代码。这些代码行有一些难以理解的概念,但是一旦您阅读并理解了这些代码,它们就变得很容易了。记住,这个概念是将数组中最小的数字向上移动,这样整数就有了升序排列。

第一行代码将临时变量Tempvar中的较小数字(数字[j + 1])放置在较小的数字(数字[j + 1])。原因是因为你需要移动较高的数字,并这样做而不将其保存到临时变量将覆盖数字,并且您将永久丢失它。临时变量保存较小的数字,以便您可以在数组索引中切换其位置。

IF语句中的第二行将较大的整数值移动到数组中的下一个位置。较大的值覆盖了下一个索引位置中的内容(数字[j + 1]),但没关系,因为较小的数字已经存储在前一行代码中的临时变量中。这是临时变量的主要原因。

最后,使用Tempvar变量将较小的数字存储在当前索引中。这已经完成了什么,在较低索引处切换较小数字的位置,从而创建一个升序阵列。例如,如果在数字[i]中保持的数字为4并且存储在数字中的数字[j + 1]是3,则该位代码切换位置并将整数3放在数字[i]中将整数3放置并放置整数4数字[J + 1]。这在数组中的每个整数仍在继续。结果是整数的升序。

您还可以使用这个冒泡排序以降序创建一个整数列表。逻辑略有不同,但下面是冒泡排序,创建降序列表:

for(int i = 0; i 
    

注意有一个变化:IF语句的迹象小于符号而不是大于符号。其余的逻辑和语法是相同的。当您切换到少于符号时,当前位置的整数仅在小于下一个位置时冒泡。基本上,你反转泡沫排序。

如果您正在尝试使用Java Bubble排序,可以通过打印出数字数组来验证您是否正确完成。您还可以逐步通过代码,但打印它允许您快速查看结果而无需使用调试器。以下代码向您展示了如何打印出新排序的数组:

for(int i = 0; i 
    

上面的Java代码将数字打印到屏幕,因此您可以验证所有数字是否完全排序。注意使用for循环。您可以在技术上使用静态引用对数组中的索引打印出数组,但此代码更有效。此外,如果您不知道数组的大小,则此代码可允许循环浏览并打印出具有一个值或数千个值的数组。

要获得完整的代码,这里是从开始完成的Java代码:

Int [] numbers = {5,8,14,1,5678};int tempVar;for(int i = 0; i 数字[j + 1]){tempvar = numbers[J + 1];数字[j]=数字[i];数字[i] = tempVar;for(int i = 0; i 
    

打印是:

1 5 8 14 5678

顺便提一下,您还可以将泡沫排序放入Java功能中。这意味着您可以从代码中的任何位置对任何整数值进行排序。函数可以是您创建的任何辅助类的一部分,它们使其更方便,因此您无需在每个类中键入代码。以下代码是创建静态函数并调用来自代码的函数的示例:

公共静态void main(){int []数字= {5,8,14,1,5678};Bubblesort(数字);静态void bubblesort(int []数字){int tempvar;for(int i = 0; i 数字[j + 1]){tempvar = numbers[J + 1];数字[j]=数字[i];数字[i] = tempVar;for(int i = 0; i 
    

为此类型的类型创建静态类的美是您不需要实例化课程。只需调用类和“bubblesort”函数,您可以在整个代码中对任何数量的整数阵列进行排序。

超越基本的Java,学习高级函数

在Java中的泡沫排序可能是最常见的方式之一,您可以以升序或降序快速排序数组。其他更复杂的类型具有排序函数,但如果您需要用原始类型快速排序阵列,泡沫排序是排序数字最快,最有效的方法。您还可以在泡沫排序中使用字符串,但字符串由长度测量,因此气泡排序将根据字符串长度按升序排序字符串。

如果您上大学进行计算机科学,您也可能需要知道这种类型。许多大学教授使用泡沫排序方法来介绍循环概念和逻辑。

一旦了解泡泡排序以及它如何与for循环合作,您就可以继续前进到更高级的概念,例如“执行”和“循环”循环。许多枚举概念让您循环通过不使用递增号。相反,您使用枚举器。然而,最好了解泡沫循环,以更好地熟悉一般的阵列和Java概念。

Java的顶级课程

Selenium webdriver与java -basics到高级+框架
拉胡尔·赫尔蒂
4.6 (58,895)
畅销书
Java反应性编程[来自Scratch]
vinoth selvaraj.
4.5 (34)
简单的Java 8新特性
杜尔加斯州杜尔加
4.6 (6,785)
开发Minecraft插件(Java)
斯蒂芬·金
4.8 (2,067)
畅销书
Java 9简单的新功能:JShell,JPMS等
杜尔加斯州杜尔加
4.9 (441)
完整的Java核心课程:学习代码
Dezlearn教育
4.5 (737)
Java设计模式
Bharath thippiveddy.
4.5 (609)
Java:简化了多线程和并发性
SAGAR UPPULURI.
4.4 (415)
Java编程:逐步从A到Z
Holczer Balazs.
4.6 (578)

更多的Java课程

Java学生还学习

赋予你的团队。引领行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求演示