選擇排序算法C語言的實(shí)現(xiàn).選擇法排序原理:一次選定數(shù)組中的每一個(gè)數(shù),記下當(dāng)前位置并假設(shè)它是從當(dāng)前位置開始后面數(shù)中的最小數(shù)min=i(將下標(biāo)給MIN,先不急著交換),從這個(gè)數(shù)的下一個(gè)數(shù)開始掃描直到最后一個(gè)數(shù),并記錄下最小數(shù)的位置min,掃描結(jié)束后如果min不等于i,說明假設(shè)錯(cuò)誤,則交換min與i位置上數(shù)。 具體實(shí)現(xiàn)代碼如下:
#include
/****************************************
**選擇排序法對(duì)十個(gè)整數(shù)進(jìn)行排序 ***
****************************************/
//n為數(shù)組長(zhǎng)度;
void sort(int a[],int n)
{
int temp,min;
for(int i=“0”;i {
min=“i”;//先假設(shè)最小下標(biāo)為i
for(int j=“i”+1;j if(a[j] min=“j”;//對(duì)i之后的數(shù)進(jìn)行掃描將最小的數(shù)賦予min
if(min!=i)
{
temp=“a”[i];
a[i]=a[min];
a[min]=temp;
}//判斷min與i是否相等,若=則說明原假設(shè)正確反之交換數(shù)值
}
}
//用main函數(shù)驗(yàn)證
void main()
{
int a[10];
printf(“please input the array a:\n”);
for(int i=“0”;i《10;i++)
scanf(“%d”,&a[i]);
sort(a,10);
for(i=0;i《10;i++)
printf(“%d\t”,a[i]);
}
-
C語言
+關(guān)注
關(guān)注
180文章
7594瀏覽量
135863 -
排序算法
+關(guān)注
關(guān)注
0文章
52瀏覽量
10047
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論