指標對陣列排序選擇法和冒泡法

珍惜每分每秒發表於2016-11-28

選擇法程式碼:

#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));
}



相關文章