C语言数组:排序、统计与搜索的全面解析
1. 冒泡排序算法
冒泡排序是一种简单的排序算法,其基本思想是通过多次比较和交换相邻元素,将较大的元素逐步“冒泡”到数组的末尾。
1.1 排序过程
对于一个包含10个元素的数组,冒泡排序会进行9次比较,每次比较相邻的两个元素,如果顺序错误则交换它们的位置。在第一次遍历中,最大的值会被移动到数组的最后一个位置(a[9]);第二次遍历中,第二大的值会被移动到a[8],以此类推。经过9次遍历,数组就会被排序好,即使数组中有10个元素,也只需要9次遍历。
1.2 代码实现
void bubbleSort(unsigned int a[]) {
for (unsigned int pass = 1; pass < SIZE; ++pass) {
for (size_t j = 0; j < SIZE - 1; ++j) {
if (a[j] > a[j + 1]) {
unsigned int hold = a[j];
a[j] = a[j + 1];
a[j + 1] = hold;
}
}
}
}
1.3 优缺点
冒泡排序的优点是实现简单,但缺点是效率较低,因为每次交换只能将元素移动一个位置,对于大规模数组排序时性能较差。