【C语⾔】数组排序法(升序)⼀、冒泡排序
主要思路:相邻两个数的⽐较交换
#include<stdio.h>
int main()
{
int a[10],temp=0;
for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(int k=0;k<9;k++)c语言的冒泡排序算法
{
for(int j=1;j<10-k;j++)
{
if(a[j]>a[j-1])
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
}
}
for(int m=0;m<10;m++)
{
printf("%d ",a[m]);
}
return0;
}
⼆、选择法排序
主要思路:每次出最⼩的在交换,较少交换次数
#include<stdio.h>
int main()
{
int a[10],temp=0,m;
for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(int k=0;k<9;k++)
{
m=k;
for(int j=1+k;j<10;j++)
{
if(a[j]<a[m])
{
m=j;
}
}
if(m!=k)
{
temp=a[m];
a[m]=a[k];
a[k]=temp;
}
}
for(int m=0;m<10;m++)
{
printf("%d ",a[m]);
}
return0;
}
三、交换排序
主要思路:先确定⼀个数,再⽐较⼤⼩交换
#include<stdio.h>
int main()
{
int a[10],temp=0;
for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(int k=0;k<9;k++)
{
for(int j=1+k;j<10;j++)
{
if(a[j]<a[k])
{
temp=a[j];
a[j]=a[k];
a[k]=temp;
}
}
}
for(int m=0;m<10;m++)
{
printf("%d ",a[m]);
}
return0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论