冒泡排序

来源:互联网 发布:网络通信软件 编辑:程序博客网 时间:2024/05/23 23:20

     设顺序表的存储结构如下:
     typedef struct
    {
      int key;//关键字项
       InfoType otherinfo;// 其它数据项
    }RecordType; //记录类型
 
     typedef struct
    {
      RecordType r[MaxSize+1];//r[0]闲置
       int length; //顺序表的实际长度
    }SqList; //顺序表类型

 

试设计基于上述存储结构的冒泡排序算法,并分析算法的时间复杂度。

 

 

 

自己答:

//BubbleSort.cpp//This function is to sort SqList# include <iostream.h># include <conio.h># define MAXSIZE 20# define MAX_LENGTH 100typedef int RedType;typedef struct//define structure SqList{   RedTyper[MAXSIZE+1];    int length;}SqList;void BubbleSort(SqList &L){   int i,j,temp;    for(i=0;i<=L.length;++i)       for(j=L.length-2;j>i;--j)  if(L.r[j+1]<L.r[j])  {   temp=L.r[j+1];      L.r[j+1]=L.r[j];      L.r[j]=temp;  }}void main()//main() function{  int i;   SqList L;   cout<<endl<<endl<<"BubbleSort.cpp";   cout<<endl<<"=============="<<endl;   cout<<endl<<"Please input the length of SqList (eg,5): ";   cin>>L.length;   L.length++;//the last is aided space   for(i=1;i<L.length;++i)   {   cout<<"Please input the "<<i<<"th element of SqList (eg,58): ";       cin>>L.r[i];   }   cout<<endl<<"The disordered : ";   for(i=1;i<L.length;i++)       cout<<L.r[i]<<"  ";   BubbleSort(L);//call BubbleSort()   cout<<endl<<"The ordered    : ";   for(i=1;i<L.length;i++)     cout<<L.r[i]<<"  ";   cout<<endl<<endl<<"...OK!...";   getch();} //main() end