【排序算法】:冒泡排序

来源:互联网 发布:suse linux snmp配置 编辑:程序博客网 时间:2024/06/11 05:48

代码

#include <iostream>#include <cstdlib>#include <ctime>#define SIZE 20using namespace std;template<typename T>void bubbleSort(T* A,int lo,int hi){    cout<<"\n经过冒泡排序\n";    bool sorted=false;    int j=hi;int count=0;    while(!sorted)    {        count++;        sorted=true;        //cout<<"第"<<count<<"趟排序:\n";        for(int i=1;i<j;i++)        {            if(A[i-1]>A[i])            {swap(A[i-1],A[i]);sorted=false;}            //cout<<"A["<<i-1<<"]和A["<<i<<"]相交换\n";                     }        //for(int k=lo;k<hi;k++)cout<<A[k]<<" ";cout<<endl;        j--;        }    for(int k=lo;k<hi;k++)cout<<A[k]<<" ";cout<<endl;}int main(){    clock_t start,finish;    int A[SIZE]={0};int i=SIZE;     cout<<"原数组\n";    while(i--)    {        A[i]=rand()%SIZE;        cout<<A[i]<<" ";    }    cout<<endl;    start=clock();    bubbleSort(A,0,SIZE);    finish=clock();    cout<<"运行冒泡排序的时间为"<<(double)(finish-start)/CLOCKS_PER_SEC<<"秒\n";     return 0;}
0 0