卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

簡單選擇排序2

在上一節(jié)中,我們介紹了簡單選擇排序的基本原理和實(shí)現(xiàn)方法。通過比較數(shù)組中的元素,我們找到了最大的數(shù)并將其放在數(shù)組的第一個位置。然而,直接將最大數(shù)放在第一個位置會導(dǎo)致原來該位置的數(shù)據(jù)丟失。 為了解決這個

在上一節(jié)中,我們介紹了簡單選擇排序的基本原理和實(shí)現(xiàn)方法。通過比較數(shù)組中的元素,我們找到了最大的數(shù)并將其放在數(shù)組的第一個位置。然而,直接將最大數(shù)放在第一個位置會導(dǎo)致原來該位置的數(shù)據(jù)丟失。

為了解決這個問題,我們需要使用一個臨時變量來存儲數(shù)據(jù)。類似于互換兩瓶飲料的液體,我們可以定義一個變量t來暫存數(shù)據(jù)。具體步驟如下:

  1. 將a[0]的值賦給t:t a[0];
  2. 將a[3]的值賦給a[0]:a[0] a[3];
  3. 將t的值賦給a[3]:a[3] t;

這樣,我們就成功地將最大數(shù)放在了數(shù)組的第一個位置,同時沒有丟失其他數(shù)據(jù)。

通過觀察上述步驟,我們發(fā)現(xiàn)每次操作的目標(biāo)下標(biāo)no和循環(huán)的次數(shù)j是有規(guī)律的。因此,我們可以使用循環(huán)來重復(fù)執(zhí)行這段代碼。具體代碼如下:

include "stdio.h"
int main()
{
    int a[10]  {34, 56, 7, 89, 9, 9, 56, 34, 78, 65};
    int no;
    int t;
    int i;
    int j;
    for(j  0; j < 9; j  ) // 控制循環(huán)9次
    {
        // 重復(fù)執(zhí)行的代碼段
        no  j;
        for(i  j   1; i < 10; i  )
        {
            if(a[i] > a[no])
            {
                no  i;
            }
        }
        t  a[j];
        a[j]  a[no];
        a[no]  t;
        //-----------------
    }
    // 輸出數(shù)組里的元素
    for(i  0; i < 10; i  )
    {
        printf("%d ", a[i]);
    }
    printf("

");
}

運(yùn)行結(jié)果如下:

89 78 65 56 56 34 34 9 9 7 

至此,我們已經(jīng)完成了對10個元素的簡單選擇排序。使用循環(huán)的方法能夠簡化代碼,并且適用于不同數(shù)量的元素進(jìn)行排序。

標(biāo)簽: