冒泡排序是Java中最常用的数据排序算法之一。排序是通过递归比较相邻数字并按升序或降序移动它们来完成的。完成元素的移动,直到所有数字都按照所需的顺序完全排序。冒泡排序之所以得名,是因为数组冒泡的元素是它们的开始方式。让我们通过一个例子来理解冒泡排序算法。
示例:考虑需要按升序排列的数字数组 [6 1 8 5 3]。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
冒泡排序算法会进行多次迭代,直到发现所有数字都已排序。
下面是Java中冒泡排序的迭代过程如下:
由于数字仍未完全增加,程序进行第二次迭代。
[1 6 5 3 8] – 这里,再次从第一次迭代结果的前两位开始比较。它比较数字 1 和 6 并保留相同的顺序,因为 1 小于 6。 [1 6 5 3 8] – 此处比较数字 5 和 6。保留相同的顺序,因为它已经处于所需的递增顺序中。 [1 5 6 3 8] – 数字 6 和 3 之间发生比较。数字 3 向左移动,因为它小于 6。 [1 5 3 6 8] – 接下来,数字 6 和 8 相互比较。保留与预期顺序相同的顺序。 [1 5 3 6 8] – 这是第二次迭代后的最终结果。尽管如此,我们仍然可以注意到数字并没有完全按照升序排列。尽管如此,我们仍然需要交换数字 5 和 3 才能得到最终结果。因此程序进行第三次迭代。由于只需对数组的 5 个元素进行排序,因此只需要 3 次迭代。随着数组中元素的增加,迭代次数也会增加。
下面是Java代码,它实现了冒泡排序算法。 (请注意,Java 中数组的第一个位置从 0 开始,以 1 为增量继续,即 array[0]、array[1]、array[2],如此继续。)
代码:
import java.util.Scanner; public class BubbleSort { static void bubbleSort(int[] arraytest) { int n = arraytest.length; //length of the array is initialized to the integer n int temp = 0; //A temporary variable called temp is declared as an integer and initialized to 0 for(int i=0; i < n; i++){ // first for loop performs multiple iterations for(int j=1; j < (n-i); j++){ if(arraytest[j-1] > arraytest[j]){ // if loop compares the adjacent numbers // swaps the numbers temp = arraytest[j-1]; // assigns the greater number to temp variable arraytest[j-1] = arraytest[j]; // shifts the lesser number to the previous position arraytest[j] = temp; // bigger number is then assigned to the right hand side } } } } public static void main(String[] args) { int arraytest[] ={23,16,3,42,75,536,61}; // defining the values of array System.out.println("Array Before Doing Bubble Sort"); for(int i=0; i < arraytest.length; i++){ // for loop used to print the values of array System.out.print(arraytest[i] + " "); } System.out.println(); bubbleSort(arraytest); // array elements are sorted using bubble sort function System.out.println("Array After Doing Bubble Sort"); for(int i=0; i < arraytest.length; i++){ System.out.print(arraytest[i] + " "); // for loop to print output values from array } } }
输出:
以下是 Java 中冒泡排序的不同优点和缺点:
由于冒泡排序能够检测排序中的微小错误,因此它被用于计算机图形学中。它也用在多边形填充算法中,需要对多边形的顶点衬里进行排序。
本文了解了冒泡排序算法的工作原理以及如何使用 Java 编程来实现它。冒泡排序是一种非常稳定的算法,可以针对相对较小的数据集轻松实现。这是一个比较算法的案例,由于简单,适合新手使用。
以上是Java 中的冒泡排序的详细内容。更多信息请关注PHP中文网其他相关文章!