排序方法----選擇排序

選擇排序法程序:


#include<stdio.h>

#include<stdlib.h>

#include<string.h>

 

void printfArray(inta[],int num)

{

inti=0;

for(i=0;i<num;i++ )

{

printf("%d  ",a[i]);

}

}

 

//選擇排序

//外層循環 i=0時,讓j 1—N進行變化

//外層循環 i=1時,讓j 2—N進行變化

//外層循環 i=2時,讓j 3—N進行變化

//....N=7

//外層循環 i=5時,讓j 6—N進行變化

//結論:按照一個變量i不變,讓另一個變量j進行變化,下一輪依次進行

voidsortArray( int a[],int num )        //從小到大排序

{

inti,j,temp;

for( i=0;i<num-1;i++)        //外層循環

{

for( j=i+1;j<num;j++)        //內層循環:a[i]a[j]比較大小,把小的放前面

{

if( a[i]>a[j])                //把小的放到前面

{

temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

}

}

 

//排序

void main()

{

inti=0,j=0;

inttemp=0,num=0;

inta[]={33,654,4,455,6,33,4};

num=sizeof(a)/sizeof(a[0]);

 

printf("排序前:");

printfArray(a,num);

printf("\n");

 

sortArray(a,num);

 

printf("排序後:");

printfArray(a,num);

printf("\n");

 

system("pause");

return;

}


Some Tips:

1、數組做函數參數,會退化爲一個指針

2、把數組的內存首地址以及數組長度作爲函數參數即可。

3、實參的a和形參的a的數據類型本質不一樣

4、形參中的數組,編譯器會把它優化爲指針(C語言特色),指針類型爲其定義的數據類型,決定了爲其分配的內存空間大小。

5、形參寫在函數聲明括號內,和寫在函數體內是一樣的,只不過具有對外屬性而已。


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