标签:style blog color os io 数据 for ar
冒泡排序的时间复杂度是O(n2),空间复杂度是O(n),是一种稳定的排序算法。
需要注意的是:每一轮冒泡后,最后一个数必然是这一轮排序完的最大值,下一轮不必再参与冒泡。所以,内部循环的上限是size-i-1。
【代码】
#include<iostream> using namespace std; template<class T> void bubble_sort(T Array[],const int size) { T temp;//中间变量 int flag;//用于标记 for(int m=0;m<size-1;m++)//冒泡排序的关键代码,外部循环确定边界(即循环的最大值) { flag=0; for(int n=0;n<size-1-m;n++) { if(Array[n]>Array[n+1])//内部循环用于比较和交换数据 { temp=Array[n]; Array[n]=Array[n+1]; Array[n+1]=temp; flag=1;//若发生交换,则标记置1 } } if(flag==0) { break;//若没发生交换,则说明数列已有序 } } } int main() { int temp;//中间变量 int a[10]; cout<<"please input 10 numbers: "<<endl; for(int i=0;i<10;i++)//输入原始数组 { cin>>a[i]; } bubble_sort(a,sizeof(a)/sizeof(int)); for(int j=0;j<10;j++)//输出排序后的数组 { cout<<a[j]<<" "; } return 0; }
标签:style blog color os io 数据 for ar
原文地址:http://www.cnblogs.com/jixiaowu/p/3904099.html