當前位置:首頁 » 編程語言 » 選擇法排序c語言定義
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

選擇法排序c語言定義

發布時間: 2023-04-12 02:32:19

c語言選擇法排序

#include<stdio.h>

#defineM 5

void main()

{

int b[M],i,j,t,k;

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

scanf("%d",&b[i]);

for(i=0;i<M-1;i++)

{

for(k=i,j=i+1;j<M;j++)

if(b[k]<b[j])

k=j;

if(i!=k)

{

t=b[i];

b[i]=b[k];

b[k]=t;

}

}

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

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

}

錯在大括弧位置加錯了。

代碼:

#include<stdio.h>

void SelectionSort(int *num,int n)

{

int i = 0;

int min = 0;

int j = 0;

int tmp = 0;

for(i = 0;i < n-1;i++)

{

min = i;//每次講min置成無序組起始位置元素下標

for(j = i;j < n;j++)//遍歷無序組,找到最小元素。

{

if(num[min]>num[j])

{

min = j;

}

}

if(min != i)//如果最小元素不是無序組起始位置元素,則與起始元素交換位置

{

tmp = num[min];

num[min] = num[i];

num[i] = tmp;

}

}

}

(此處空一行)

int main()

{

int num[6] = {5,4,3,2,9,1};

int i = 0;

SelectionSort(num,6);//這里需要將數列元素個數傳入。有心者可用sizeof在函數內求得元素個數。

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

{

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

}

return 0;

}

⑵ 用C語言編程:用選擇法對10個整數排序,10個整數用scanf函數輸入

1、打開visual C++ 6.0,准備一個空白的c語言文件,引入頭文件,在main函數中定義變數和數組:

⑶ C語言選擇排序法

這是選擇排序。先用a[0]與a[1]比較,當a[0]<a[1]時並不交換,而用k記下來現在a[0]最小……這樣一趟比較完後a[k]就是整個數組中最小的元素,把它與a[0]交換;第二趟,從a[1]開始重復前面的操作,那麼最後a[1]就是剩下的n-1個元素中最小的……看a[0]、a[1]已經由小到大排好了,當做完n-1趟時不就把整個數組都排好了嗎?注意:t=array[k];array[k]=array[i];array[i]=t;不是for(j=i+1;j<n;j++)的循環體,要等它循環完了後才執行一次。

⑷ 編寫函數,使用選擇排序法對數組進行排序(用C語言)

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

intmain(void)
{
inta[10],i,j,tmp,b;
srand(time(NULL));
for(i=0;i<10;i++)
a[i]=rand()%100;
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf(" ");
for(i=0;i<9;i++)
{
tmp=i;
for(j=i+1;j<10;j++)
{
if(a[tmp]>a[j])
tmp=j;
}
if(i!=tmp)
{
b=a[tmp];
a[tmp]=a[i];
a[i]=b;
}
}
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf(" ");
return0;
}


隨機產生數組中的元素, 更合理一些。 網路中有各種版本。

⑸ 用選擇法對數組中的N個元素按從小到大的順序排列 用 C語言編寫 謝謝啦

我今天又學習到了選擇演算法,呵呵,我一開始猜想是冒泡排序呢,剛學習的

#include<stdio.h>
#defineN10
voidmain()
{
intData[N];
inti,j,temp;
for(i=0;i<N;i++)
{
printf("請輸入第%d個數:",i+1);
scanf("%d",&Data[i]);
}
//開始選擇排序
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)
{
if(Data[i]>Data[j])
{
temp=Data[i];
Data[i]=Data[j];
Data[j]=temp;
}
}
}
//選擇排序結束
for(i=0;i<N;i++)
{
printf("排序後第%d個數為:%d ",i+1,Data[i]);
}
}

希望對你有幫助。

⑹ C語言中的選擇排序法是什麼

選擇排序(Selection sort)是一種簡單直觀的排序演算法。工作原理是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完。

以下是一個實現選擇排序的例子:

#defineSWAP(x,y,t)((t)=(x),(x)=(y),(y)=(t))
//將list中的n個數據,通過選擇排序演算法排序。
voidselete_sort(intlist[],intn)
{
inti,j,min,temp;
for(i=0;i<n-1;i++){
min=i;
for(j=i+1;j<n;j++)//找出最小元素的下標。
if(list[j]<list[min])
min=j;
SWAP(list[i],list[min],temp);//交換最小元素到當前起始位置。
}
}

⑺ 在C語言中什麼叫選擇法

當你只有一個選項的時候,使用if(條件表達式)
當你只有兩個選項的時候,使用if(條件表達式)else(條件表達式)
當你只有多個選項的時候,使用if(條件表達式)else if(條件表達式)...else(條件表達式)
例如你從1到100的數,選擇5的倍數列印出來,這時候就用選擇法了
for(i=1;i<=100;i++)
{if(i%5==0)printf("%d\n",i);}