赞
踩
冒泡排序是一种简单的排序算法。它重复地遍历要排序的列表,一次比较两个元素,并按照顺序交换它们,直到整个列表排序完成。
#include <stdio.h> void Bubble_Sort(int arr[], int sz) { for (int i = 0; i < sz - 1; i++) { for (int j = 0; j < sz - i - 1; j++) { if (arr[j] > arr[j + 1]) { // 交换arr[j]和arr[j+1] int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } void Print_Array(int arr[], int sz) { for (int i = 0; i < sz; i++) { printf("%d ", arr[i]); } printf("\n"); } int main() { int arr[] = { 64, 34, 25, 12, 22, 11, 90 }; int sz = sizeof(arr) / sizeof(arr[0]);//计算数组中的元素个数 printf("原始数组:"); Print_Array(arr, sz); Bubble_Sort(arr, sz); printf("排序后的数组:"); Print_Array(arr, sz); return 0; }
运行结果:
原始数组:64 34 25 12 22 11 90
排序后的数组:11 12 22 25 34 64 90
在冒泡排序中,外层循环控制排序的轮数,内层循环用于比较并交换相邻的元素。通过多次执行内层循环,最大的元素会逐渐“冒泡”到数组的末尾,从而实现排序。
值得注意的是,冒泡排序的时间复杂度是O(n^2),没有使用额外的空间,是一种原地排序算法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。