選擇排序優化算法

<h2><span style="font-size:18px;">選擇優化一:</span></h2><span style="font-size:18px;">
</span>
<span style="font-size:18px;">#include<stdio.h>
#define N 10    
int main(){
   int a[N],max,k,temp,j;
   for(int i=0;i<N;i++)
   {
       scanf("%d",&a[i]);
   }
   for(i=0;i<N;i++)
   {
	   max=i;
       for(j=i+1;j<N;j++)
	   {
		   if(a[j]>a[max])
		   {
		       max=j;
		   }
	   }
	   if(max!=i)
	   {
	               temp=a[i];
			a[i]=a[max];
			a[max]=temp;
	   }
   }
   
   printf("\n選擇優化一:\n");
   for(i=0;i<N;i++)
   {
       printf("%4d ",a[i]);
   }
   printf("\n");

   return 0;
}</span>

選擇優化二:

        
<span style="font-size:18px;">#include<stdio.h>
#define N 10
int main()
{
   int i,max,min,left,right,a[N],temp;
   for(i=0;i<N;i++)
   {
        scanf("%d",&a[i]);
   }
   for(left=0,right=N-1;left<right;left++,right--)
   {
          max=left;
	   min=right;
	   for(i=left;i<=right;i++)
	   {
	      if(a[i]>a[max])
		  {
		     max=i;
		  }
		  if(a[i]<a[min])
		  {
		     min=i;
		  }
	   }
	   if(max!=left)
	   {
	       temp=a[left];
		   a[left]=a[max];
		   a[max]=temp;
		   if(min==left)
		   {
		      min=max;

		   }
	   }
	   if(min!=right)
	   {
	               temp=a[min];
			a[min]=a[right];
			a[right]=temp;
	   }
   
   }
   printf("\n選擇優化2 :\n");
   for(i=0;i<N;i++)
   {
     printf("%4d ",a[i]);
   }
   printf("\n");

    return 0;
}</span>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章