指针对数组排序选择法和冒泡法

来源:互联网 发布:matlab求解优化问题 编辑:程序博客网 时间:2024/06/05 19:12

选择法代码:

#include <stdio.h>main(){int i,j,t,a[10]={9,8,7,6,5,4,3,2,1,0},*p=a;    for (i=0;i<9;i++)for (j=i+1;j<10;j++){if (*(a+i)>*(a+j)){t=*(a+i);*(a+i)=*(a+j);*(a+j)=t;}}for (p;p<a+10;p++)  //p指向数组首地址,范围在a[9]内,p自增一次代表指向数组下个元素的地址printf("%d",*p);//输出目前p指向地址的值   /*for (i=0;i<10;i++)  //a+i代表数组名(即首地址)增加i个元素,   printf("%d",*(a+i));  //取目前a+i的地址的结果*/}
冒泡法代码:

#include <stdio.h>main(){int i,j,t,a[10]={9,8,7,6,5,4,3,2,1,0},*p=a;   for (i=0;i<9;i++)   for (j=0;j<9-i;j++)   {   if (*(a+j)>*(a+j+1)) //第一个元素与第一个元素后一个元素比较   {   t=*(a+j);   *(a+j)=*(a+j+1);   *(a+j+1)=t;   }   }   for (i=0;i<10;i++)         printf("%d",*(a+i));}



0 0
原创粉丝点击