冒泡流程图

来源:百度知道 编辑:UC知道 时间:2024/09/21 22:41:38
有一组关键字{14,15,30,28,5,10},分别写出冒泡法和选择排序过程的图示并分析关键字个比较了多少次?
谢谢各位,急急急!!!

unsigned char t[6]={14,15,30,28,5,10};
unsigned char k;

for(i=0;i<6;i++)
for(j=0;j<6-i;j--)
{
if(t[j]>t[j+1])
{
k=t[j];
t[j]=t[j+1];
t[j+1]=k;
}
}

#include <iostream>
using namespace std;
//冒泡排序,升序排列,时间复杂度O(n^2),如果原始数据已经有序则复杂度为n
void bubblesort(int r[],int n)
{
int i,j,flag;
for (i=1;i<=n;i++)
{
flag=1; //设置交换标志,flag=1时为未交换
for (j=1;j<=n-i;j++)
if (r[j+1]<r[j])
{
flag=0; //已交换
r[0]=r[j];r[j]=r[j+1];r[j+1]=r[0];
}
if (flag !=0) break; //未交换,排序结束
}
}

int main ()
{
const int maxsize=10;
int r[maxsize+1];
for (int i=1;i<=maxsize;i++)
{
cin>>r[i];
}
bubblesort (r , maxsize);
for ( i=1;i<=maxsize;i++)
{
cout<<r[i]<<endl;
}
return 1;
}