冒泡排序
原创
©著作权归作者所有:来自51CTO博客作者xocom的原创作品,请联系作者获取转载授权,否则将追究法律责任
设顺序表的存储结构如下:
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 100
typedef int RedType;
typedef struct //define structure SqList
{ RedType r[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