冒泡排序
- 编程实现冒泡排序函数。public static void bubbleSort(int arr[])。其中arr存放待排序的数据,数组长度不大于1000
- 函数接口定义:
/* 对长度为n的数组arr执行冒泡排序 */
public static void bubbleSort(int arr[]);
请实现bubbleSort函数,使排序后的数据从小到大排列。
c
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] arr = new int [n];
for(int i = 0; i < n; i ++) {
arr[i] = scanner.nextInt();
}
scanner.close();
bubbleSort(arr);
print(arr);
}
public static void print(int[] arr) {
for (int i : arr) {
System.out.print(i + " ");
}
System.out.println("");
}
// ---------------------------------------------------------------------------
// 【实现代码如下】
// 排序函数
public static 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;
}
}
}
}
}