/* * 作者:姬灬剌 * 日期:2016年6月26日 * 功能:冒泡排序法 * 总结: * 基本思想:通过对待排序序列从后向前(从下表较大的元素开始),依次比较相邻元素的排序码, * 若发现逆序则交换,使排序码较小的元素逐渐从后部移动到前部; * 因为在排序过程中,各元素在不停地接近自己的位置,如果一次比较下来没有发生任何改变,则说明 * 序列排序完成,故需要在排序过程中设置一个标识flag判断元素是否交换过,从而减少不必要的比较 * */ package com.st.paixu; import java.util.Random; public class maopao { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub // 定义一个int类型的数组,设置长度为length int length = 8; int[] arr = new int[length]; // 随机生成arr数组的元素 for (int i = 0; i < arr.length; i++) { arr[i] = new Random().nextInt(10); } // 实例化一个MpSort类的对象 MpSort ms1 = new MpSort(); // 打印数组 System.out.println("排序前:"); ms1.printArr(arr); ms1.sort(arr); System.out.println("\n排序后:"); ms1.printArr(arr); } } // 定义一个冒泡排序的类:MpSort class MpSort { public boolean flag = true; // 成员方法:排序 // 外层循环设置排序次数 // 定义一个游标变量 public int[] sort(int[] arr) { int temp = 0; for (int i = 0; i < arr.length - 1; i++) { // 内层循环进行位置冒泡 for (int j = 0; j < arr.length - 1 - i; j++) { flag = true; if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; flag = false; } } //flag要在外层,即完成一次冒泡后,若flag值不更改为false,则未进入交换代码段,进而跳出循环 if (flag) { break; } //System.out.println("\n排序中:"); //printArr(arr); } return arr; } // 打印数组 public void printArr(int[] arr) { for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } }
相关推荐
冒泡排序是一种基础且历史悠久的排序算法,它通过重复遍历待排序的序列,比较相邻元素并根据需要交换它们的位置,使得每一趟遍历后,最大的元素“浮”到序列的末尾,就像水底下的气泡逐渐上升到水面一样。在Java中...
### Java冒泡排序算法知识点详解 #### 一、冒泡排序基本概念 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是...
### JAVA冒泡排序算法详解 冒泡排序是一种简单的排序算法,它重复地遍历要排序的元素列表,比较每对相邻元素,如果它们的顺序错误就把它们交换过来。遍历列表的工作是重复进行的,直到没有再需要交换的元素,也就是...
冒泡排序是一种基础且经典的排序算法,主要应用于计算机科学领域,特别是在编程语言如Java中。它的名字来源于排序过程中较小的元素像气泡一样逐渐“浮”到数组或列表的顶端。这个PPT文档很可能是详细介绍了Java实现...
在具体实现时,冒泡排序有两种常见的版本:一种是优化版本,通过一个标记变量记录每一轮遍历是否发生了交换,如果某一轮没有发生交换,则可提前结束排序,因为此时数列已经是有序的了;另一种是不使用额外变量的版本...
### Java冒泡排序方法详解 #### 一、冒泡排序简介 冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,依次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行的,直到...
冒泡排序是一种基础且经典的排序算法,它通过不断交换相邻两个元素的位置,使得每一次遍历都能将当前未排序部分的最大(或最小)元素“冒”到已排序部分的末尾。在Java编程语言中,我们可以很容易地实现这个算法。...
- 实现冒泡排序的Java代码是一个双层循环结构,外层循环控制排序的轮数,内层循环负责每轮的比较和交换。 6. 冒泡排序的优化 - 优化一:设置一个标志位,如果在某一轮排序中没有发生任何交换,则说明数组已经有序...
冒泡排序是一种基础的排序算法,它通过重复遍历待排序的序列,比较相邻元素的大小,然后根据比较结果交换位置,从而逐步将较大的元素“冒”到序列的后端,直到整个序列有序。在Java中实现冒泡排序,我们可以创建一个...
这个简单的Java冒泡排序程序对于理解排序算法的基本工作原理非常有用,同时也可以作为一个基础模板,根据实际需求进行扩展,比如支持降序排序、优化冒泡排序(如添加标志位判断是否已经完成排序等)。 在学习算法的...
### Java冒泡排序知识点解析 #### 一、冒泡排序基本概念 冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,依次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行的,...
在计算机科学中,排序算法是数据结构领域的重要组成部分,它用于对一组数据进行有序排列。这里我们关注的是两种基础的排序算法:选择排序...然而,了解和掌握基础的排序算法,对于理解和优化更复杂的算法具有重要意义。
### Java中的两种冒泡排序算法 #### 知识点一:基本冒泡排序算法 冒泡排序是一种简单的排序算法,其基本思想是通过不断地比较相邻元素的大小,并根据需要进行交换,来达到排序的目的。 **代码实现:** ```java ...
以下是一个简单的Java冒泡排序器的示例: ```java public class BubbleSort { public static void bubbleSort(int[] array) { int n = array.length; for (int i = 0; i ; i++) { for (int j = 0; j ; j++) { ...
归并排序也是一种基于分治法的排序算法。它将数组分为两半,分别对左右两半进行归并排序,然后再合并这两个已排序的子数组。Java中,可以使用两个辅助数组来辅助排序和合并的过程。 6. **希尔排序(Shell Sort)**...
在Java编程语言中,排序是数据处理中非常基础且重要的操作。本文将深入探讨两种基本的排序算法:选择排序和冒泡排序,并通过实际...在开发工具方面,这些简单的排序算法也可以作为基准,用于测试其他优化算法的性能。
结合以上步骤,完整的Java冒泡排序实现如下: ```java public class BubbleSortExample { public static void main(String[] args) { int[] array = {5, 3, 8, 1, 2}; bubbleSort(array); for (int num : array...
1. **冒泡排序**:冒泡排序是最基础的排序算法之一,它通过不断交换相邻的逆序元素来逐渐将较大的元素“浮”到数组的前端。在Java中,冒泡排序的基本思路是使用两个for循环,外层循环控制比较的轮数,内层循环用于...