# include<iostream> #include<stdio.h> using namespace std; void maopao(int *list){ int i,j,temp; for(i=0;i<9;i++){ for(j=0;j<9-i;j++){ if(list[j]>list[j+1]){ temp = list[j]; list[j] = list[j+1]; list[j+1] = temp; //用于检测每一步的输出 /* cout<<"i等于"<<i<<"j等于"<<j<<endl; for(int temp=0;temp<10;temp++){ cout<<list[temp]<<" "; } cout<<endl;*/ } } } } int main(){ int list[10]; int n =9,m=0,i; cout<<"input 10 number"<<endl; for(i=0;i<10;i++){ int tempvar; cin>>tempvar; list[i]=tempvar; } maopao(list); for(i=0;i<10;i++){ cout<<list[i]<<endl; } system("pause"); }
每一次内部for循环都把当前的数中最大的放在最后一个(相当于一个反的传统的冒泡排序 );冒泡排序总是比较的是相邻之间的两个数并在需要时交换,因此冒泡排序是稳定的。时间复杂度O(n^2)