冒泡排序
void BubbleSort(int *Array, int N) {
int i, j;
int tmp;
for (i = 0; i < N - 1; i++) {
for (j = 0; j < N - 1 - i; j++) {
if (Array[j] > Array[j + 1]) {
tmp = Array[j];
Array[j] = Array[j + 1];
Array[j + 1] = tmp;
}
}
}
}
介绍:
冒泡排序也是一种交换排序,实现起来也比较简单,第一轮每两个相邻的数据进行比较,将大的数放在后面,一直交换到末尾,就将一个最大的数放在了最后一个;第二轮排除最后一个数,在将前面的数据相邻比较,又将一个最大的数放在了末尾(对于所有数据来说,它是次大的);如此重复n-1轮,我们就将顺序排好了。
时间复杂度: 第一轮比较次数n-1次,第二轮n-2次…第n-1轮1次
(n-1)+(n-2)+(n-3)+…+1 = 1/2(n-1)n = O(n^2).
注:本文章用于学习和理解,如有错误之处请指出和谅解,谢谢。