冒泡排序是C/C++、Java、Python等很多初学者必须的排序!其出现场景包括期末考试、计算机二级、专升本、考研、软考等大大小小的程序设计考试中,足以看到它的重要性!它如此重要,并非是它算法效率有多高、或工作中使用频率有多高,而是其最能锻炼一个人的代码逻辑,对理解排序这件事具有非常大的作用!
1. C/C++版代码:
#include <stdio.h>
#include <stdbool.h>
// 打印数组
void printArray(int arr[], int size)
{
for (int i = 0; i < size; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
// 冒泡排序主函数
int bubbleSort(int arr[], int n)
{
int i,j;
int temp;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
// 交换 arr[j] 和 arr[j+1]
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return 0;
}
int main() {
int arr[] = {76,64, 34, 25, 12, 22, 11, 90,55,29};
int n = sizeof(arr) / sizeof(arr[0]);
printf("原始数组:\n");
printArray(arr, n);
bubbleSort(arr, n);
printf("排序后的数组:\n");
printArray(arr, n);
return 0;
}2. Java版代码:
import java.util.Scanner;
public class Main {
// 打印数组
static void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
// 冒泡排序主函数
static void bubbleSort(int arr[], int n) {
int temp;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换 arr[j] 和 arr[j+1]
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
public static void main(String[] args) {
int arr[] = {76, 64, 34, 25, 12, 22, 11, 90, 55, 29};
int n = arr.length;
System.out.println("原始数组:");
printArray(arr, n);
bubbleSort(arr, n);
System.out.println("排序后的数组:");
printArray(arr, n);
}
}3. Python版代码:
# 打印数组
def print_array(arr):
for num in arr:
print(num, end=' ')
print()
# 冒泡排序主函数
def bubble_sort(arr):
n = len(arr)
for i in range(n - 1):
for j in range(n - i - 1):
if arr[j] > arr[j + 1]:
# 交换 arr[j] 和 arr[j+1]
arr[j], arr[j + 1] = arr[j + 1], arr[j]
if __name__ == "__main__":
arr = [76, 64, 34, 25, 12, 28, 14, 90, 55, 29]
print("原始数组:")
print_array(arr)
bubble_sort(arr)
print("排序后的数组:")
print_array(arr)C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程