1.将班级成绩从小到大排列
void Bubblesort(int a[],int n)
{
for(int i=0;i<n-1;i++)
{
for(int j=n-1;j<i;j++)
{
if(a[j]<a[j-1])
{
temp=a[j-1] ;
a[j-1]=a[j];
a[j]=temp;
}
}
}
}
2.对于顺序表 R[n+1],试设计一个算法重排记录,将所有关键字(整数)为负数
的记录放在非负数的记录之前。要求算法的时间复杂度为 T(n)=O(n),空间复杂
度为 S(n)=O(1)。
void Sort(SeqList &L)
{ int temp;
int i=0;
int j=L.length-1;
while(i<j)
{
while(i<j&&a[j]>0)–j;
while(i<j&&a[i]<0)i++;
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
3.编写一个双向起泡排序的算法,即相邻两遍向相反方向起泡
4.请写出非递归的快速排序算法。