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