该算法时间复杂度与输入的顺序有关,如果输入的是一组有序的数据,时间复杂度为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 > 0 && change ; i--) { change = false ; for(j = 0 ; j < i ; j++) 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("\n") ; } printf("\n") ; for(i = 0 ; i < 8 ; i++) printf("%d ",a[i]) ; printf("\n") ; return 0; }
原文地址:http://www.cnblogs.com/scottding/p/3842301.html