本文目錄一覽:
在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);}
c語言選擇法
// 我把你的程序修改了下,添加了些注釋,你應該會看明白滴
// sort(int *, int)函數是由大到小的排序方法。採用的算法
// 是第一次從x[0]…x[4]中選出個最大的數,然後記錄下它的索引,
// 如果第一個數不是最大的,就把第一個數和最大數進行交換,使得
// x[0]是五個書中的最大數,第二次就從x[1]…x[4]中選一個最大的
// 然後把它放在x[1]的位置上。5個數,其實只需要四次就可以排好序滴
void sort(int *x,int n)
{
// i,j都是循環變量temp是用於交換的臨時變量,max是用於記錄每一趟循環
// 中找到的最大值的下標。我這裡的temp對應你原理的t,max對應你原來的k
int i, j, temp, max;
// 1.外層的for循環用於控制查找的趟數,n個數排序,只需要n-1趟排序就可以滴
// 2.你原來是 i=n-1其實可以改為in-1.可以少一趟滴。
// 3.比如 1 2 3 這三個數排序,你可以先 假設第一個數即1是最大的,然後讓1與第二個
// 4.數進行比較即1與2比較1 2你記下2對應的下標,再讓2與第三個數比較2 3再記下
// 5. 3的下標所以3是最大的數字把3放到1的位置,把1放到3的位置,即交換位置。
// 6.經過一次排序後變為3 1 2 第二次再排1 與2先假設1是1與2中最大的12記下2的下標
// 7.交換1,2位置變為2 1 所以3個數進過兩趟排序後已經變為有序了即3 2 1
// N個數只需N-1趟循環便可有序,外層循環用於控制循環趟數
for(i=0; in-1; i++)
{
// 先假設下標為i的數字是最大值
max = i;
// 也是用於控制循環次數,在第i趟中找出最大數的下標
// 第一次是從x[0]..x[4]這5個數中找,第二次是從
// x[1]..x[4]4個數中找這4個數的最大值…第四次從x[3]與x[4]這兩個數
// 中找最大值
for(j=i+1; jn; j++)
{
// 用於找最大值的下標
if(x[j] x[max])
max = j;
}
// 看第i趟循環中看x[i]是不是最大值如果是就不需要交換了
// 你也可以改為 if (x[i] x[max]){交換兩個數}
if(i!=max)
{
temp = x[i];
x[i] = x[max];
x[max] = temp;
}
}
}
c語言數組排序中的選擇法是什麼意思啊?
選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理是每一次從待排序的數據元素中 選出 最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完。所以這種排序的方法叫選擇法排序。
C語言參考實例:
#include stdio.h
void main()
{
int a[]={1,3,4,2,0} ;
int i,j,n=5;
for( i=0;in-1;i++ )
for( j=i+1;jn;j++ ) //每一遍都與當前a[i]比較
if ( a[i] a[j] ) //大的前移
{
int t=a[i];
a[i]=a[j];
a[j]=t ;
}
for( i=0;in;i++ )
printf(“%d “, a[i] );
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/157468.html