java冒泡排序法代码
时间: 2023-11-17 18:58:22 浏览: 87
下面是Java实现的冒泡排序代码:
```
public static void bubbleSort(int[] arr){
for(int i = 0; i < arr.length - 1; i++){
for(int j = 0; j < arr.length - i - 1; j++){
if(arr[j] > arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
这段代码实现了冒泡排序的基本思路,即通过比较相邻元素的大小,将较大的元素向后移动,从而实现数组的升序排序。在代码中,外层循环控制排序的轮数,内层循环控制每一轮比较的次数。如果相邻元素的大小关系不符合要求,则交换它们的位置。
另外,引用提到了一个优化点,即如果冒泡排序某个阶段的数组是由前一部分的无序部分和后一部分的有序部分组成的,那么排序范围应该是针对前一部分的这个无序部分,而不是整个部分。这样可以减少比较次数,提高排序效率。
相关问题
java冒泡排序算法的代码
冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
以下是Java中冒泡排序的基本实现:
```java
public class BubbleSort {
void bubbleSort(int arr[]) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) { // 遍历所有数组元素
for (int j = 0; j < n - i - 1; j++) { // 每次遍历时内部循环减少一位
if (arr[j] > arr[j + 1]) { // 如果前一个元素大于后一个元素
// 交换它们的位置
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 测试函数
public static void main(String[] args) {
BubbleSort bs = new BubbleSort();
int arr[] = {64, 34, 25, 12, 22, 11, 90};
System.out.println("Original array:");
for (int value : arr) {
System.out.print(value + " ");
}
bs.bubbleSort(arr);
System.out.println("\nSorted array:");
for (int value : arr) {
System.out.print(value + " ");
}
}
}
```
在这个代码中,外部循环控制整个排序过程,而内部循环负责每次遍历的元素比较和交换。当数组完全排序后,我们就停止了这个过程。
java 冒泡法排序代码
以下是 Java 冒泡排序的代码实现:
```java
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {5, 3, 8, 4, 2};
bubbleSort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
public static void bubbleSort(int[] arr) {
int temp;
// 外层循环控制排序的轮数
for (int i = 0; i < arr.length - 1; i++) {
// 内层循环控制每一轮排序的次数
for (int j = 0; j < arr.length - 1 - i; j++) {
// 如果前一个元素比后一个元素大,则交换位置
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
}
```
以上代码中,`bubbleSort` 方法为冒泡排序的实现,传入一个整数数组,使用嵌套的循环进行排序,外层循环控制排序的轮数,内层循环控制每一轮排序的次数。如果前一个元素比后一个元素大,则交换它们的位置。最后,打印出排序后的数组。
阅读全文