冒泡与选择排序为C语言排序经典,以下为经典样例,供读者参考
#include<stdio.h>
//选择排序
void select(int a[],int n)
{
int i,j;
for(int j=1;j<n-2;j++)
for(int k=j+1;k<n-2;k++)
{
if(a[j]>a[k]) //升序
{
int t;
t=a[k];
a[k]=a[j];
a[j]=t;
}
}
}
//冒泡
void pro(int a[],int n )
{
int i,j,k,t;
for(int j=1;j<=n;j++)
for(int k=1;k<=n-j;k++)
{
if(a[k+1]>a[k])
{
int t;
t=a[k];
a[k]=a[k+1];
a[k+1]=t;
}
}
}
//冒泡的指针算法
void zhizhen(int *b,int n)
{
int i,j,k,*p;
for( j=0;j<=n;j++)
for( p=b;p<b+n-j;p++)
{
if(*(p+1)<*p)
{
int t;
t=*p;
*p=*(p+1);
*(p+1)=t;
}
}
}
//
int main()
{
int a[10]={2,3,4,5,6,7,8,9},n=7;
int *p=a;
zhizhen(p,n);
for(;p<=&a[n];)
printf("%d ",*(p++)); //指针输出
return 0;
}
[参考文章如下]
(https://blog.csdn.net/u010121228/article/details/26378665)
来源:CSDN
作者:T-2000
链接:https://blog.csdn.net/weixin_45746659/article/details/103610047