基本思想:
冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。
时间复杂度O(N*N)
算法实现:
//**【冒泡排序】**//
void bubbleSort() {
int a[10], i, j, n, t;
scanf("%d", &n);
for (i = 0; i < n; ++i) {
scanf("%d", &t);
a[i] = t;
}
//从小到大
for (i = 0; i < n-1; ++i) {
for (j = 0; j < n-i; ++j) {
if (a[j] > a[j+1] ) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (i = 0; i < n; ++i) {
printf("%d\t", a[i]);
}
//从大到小
printf("\n");
for (i = 1; i <= n-1; ++i) {
for (j = 0; j < n-i; ++j) {
if (a[j] < a[j+1] ) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (i = 0; i < n; ++i) {
printf("%d\t", a[i]);
}
}
参考啊哈磊的《啊哈!算法》一书。