该算法时间复杂度与输入的顺序有关,如果输入的是一组有序的数据,时间复杂度为O(n),如果是一组无序的数据,时间复杂度为O(n^2);空间复杂度为O(1);
//冒泡排序 #include<stdio.h> int main() { int a[] = {49,38,65,49,76,13,27,52}; //int a[] = {1,2,3,4,5,6,7,8}; int i , j ; bool change = true ; for(i = 7 ; i >= 1 && change ; i--) { change = false ; for(j = 0 ; j < i ; j++) //最大值放到a[i],很重要 if(a[j]>a[j+1]) { int w = a[j] ; a[j] = a[j+1] ; a[j+1] = w ; change = true ; } for(j = 0 ; j < 8 ; j++) printf("%d ",a[j]) ; printf(" ") ; } printf(" ") ; for(i = 0 ; i < 8 ; i++) printf("%d ",a[i]) ; printf(" ") ; return 0; }