C语言实现冒泡排序
算法实现:
#include#include int main() { int arr[2][3]; int i, j, k, temp; int* p = arr; printf("\n=================数组初始化==============\n"); for(i = 0; i < 2*3; i++){ printf("输入元素:\n"); scanf("%d", p+i); } printf("\n=================开始排序==============\n"); for(i = 0; i < 2*3-1; i++){ for(j = 0; j < (2*3-1)-i; j++){ if(*(p+j) > *(p+j+1)){ temp = *(p+j+1); *(p+j+1) = *(p+j); *(p+j) = temp; } } printf("\n===============排了%d次=================\n", i+1); for(k = 0; k < 2*3; k++){ printf("%d", *(p+k)); } } printf("\n=================完成排序输出==============\n"); for(i = 0; i < 2*3; i++){ printf("arr:%d\n", *(p+i)); } return 0; }
运行结果如下:
冒泡排序演示:
算法分析:
排序法 |
最差时间分析 | 平均时间复杂度 | 稳定度 | 空间复杂度 |
冒泡排序 | O(n2) | O(n2) | 稳定 | O(1) |