c51单片机100个数从小到小大排序问题.docx
- 文档编号:1282104
- 上传时间:2022-10-20
- 格式:DOCX
- 页数:6
- 大小:14.30KB
c51单片机100个数从小到小大排序问题.docx
《c51单片机100个数从小到小大排序问题.docx》由会员分享,可在线阅读,更多相关《c51单片机100个数从小到小大排序问题.docx(6页珍藏版)》请在冰豆网上搜索。
c51单片机100个数从小到小大排序问题
c51单片机100个数从小到小大排序问题
//冒泡排序
验证过
voidMpSort(int
a[],intlen,int
flag)
{
inti,j,t=0;
for(i=0;i<len-1;i++)
for(j=0;j<len-i-1;j++)
{
if(flag==0)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
else
{
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
//查找排序
验证过
voidFindSort(int
a[],intlen,int
flag)
{
inti,j,t;
for(i=0;i<len;i++)
for(j=i+1;j<len;j++)
{
if(flag==0)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
else
{
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
}
//快速排序
voidQuickSort(int
a[],int
left,intright)
{
intmid,
mid1,l,r,
temp;
l=left;
r=right;
mid1=(left+
right)/2;
mid=a[mid1];
while(l<r)
{
while(a[l]<
mid)
++l;
while(a[r]>
mid)
--r;
if(l>r)
break;
temp=
a[l];
a[l]=
a[r];
a[r]=
temp;
if(l!
=mid1)
--r;
if(r!
=
mid1)
++l;
}
if(l==r)
l++;
if(left<
r)
qsort(a,left,
l-1);
if(l<
right)
qsort(a,r+1,
right);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c51 单片机 100 个数 从小 到小大 排序 问题