用選擇排序法對10個數進行排序。

2023-04-16 14:10:04 字數 2077 閱讀 9579

1樓:擬態

選擇法排序是一種簡單的容易實現的對資料排序的演算法。以整形陣列元素為例,有陣列a[10],即a[0],a[1],…a[8],a[9](假設其元素均互不相同)。要求對其元素排序使之遞增有序。

首先以乙個元素為基準,從乙個方向開始掃瞄,比如從左至右掃瞄,以a[0]為基準。

接下來從a[0],…a[9]中找出最小的元素,將其與a[0]交換。

然後將基準位置右移一位,重複上面的動作,比如,以a[1]為基準,找出a[1]~a[9]中最小的,將其與a[1]交換。

一直進行到基準位置移到陣列最後乙個元素時排序結束(此時基準左邊所有元素均遞增有序,而基準為最後乙個元素,故完成排序)。

main()

int array[10];

//給陣列初始化!

int i,j,k,temp;

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

2樓:行動的兔子

覺得這個好難的,像極了讀書時的排列組合題目,但仔細一看,又不是,這對於數學成績一直不是太好的我來說,真是有點難度啊,那我先看看書本再說吧。

利用選擇法,描述將10個數按從大到小順序排列的基本思路與演算法流程

3樓:士瀚文

//冒泡法排序。

#include ""

#define n 10

main()

printf(""

for(i=0;iprintf("%d ",a[i]);

} /選擇排序*/

#include ""

#define n 10

main()

printf(""

for(i=0;iprintf("%d ",a[i]);

利用選擇法,描述將 n 個數按從小到大順序排列的基本思路與演算法流程。 50

4樓:鈺瀟

把未排序的數放在右邊,已排序的放左邊,演算法就是,不斷地從右邊選取最小者放到左邊。

選擇排序法是一種不穩定的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到全部待排序的資料元素排完。

選擇排序法的第一層迴圈從起始元素開始選到倒數第二個元素,主要是在每次進入的第二層迴圈之前,將外層迴圈的下標賦值給臨時變數。

接下來的第二層迴圈中,如果發現有比這個最小位置處的元素更小的元素,則將那個更小的元素的下標賦給臨時變數,最後,在二層迴圈退出後,如果臨時變數改變,則說明,有比當前外層迴圈位置更小的元素,需要將這兩個元素交換。

5樓:來自明中都城意氣風發的核桃

利用選擇法,描述將 n 個數按從小到大順序排列的基本思路與演算法流程。

用直接插入排序法對:7,1,3,12,8,4,9,10進行從小到大排序時,第四步得到的一組數為:______

6樓:小寧哥哥

用直接排序法將無序列按照從小到大的順序排為有序列時就是每一步將把當前最小的放到第一位.

即第一步。第二步,第三步,第四步,故答案為:1,3,4,7,8,12,9,10.

7樓:錢錢錢錢

我個人認為答案是 1,3,7,8,12,4,9,10

任意輸入n個數,按由小到大的順序排列並顯示輸出。(排序演算法--選擇法排序)

8樓:匿名使用者

思路:將陣列中第乙個元素的值與其後的所有元素的值進行比較,如果前者大於後者就互換,這樣將所有元素中最小值就放在第一乙個元素中。依次類推,直到最後乙個元素為止。

那麼具體**顯示如下:

#include

#define n 5 /*對5個數按公升序排列main()

具體執行結果如下:

9樓:匿名使用者

c語言的演算法 先輸入n(問題的規模) 再輸入n個數#includevoid main()

for(i=0;iprintf("%d ",a[i]);輸出排好的序)}

對序列1,2,3,4,5進行排序,用堆排序快速排序氣泡排序

1 插入排序 直接插入排序和希爾排序 2 選擇排序 直接選擇排序和堆排序 3 交換排序 氣泡排序和快速排序 4 歸併排序 5 基數排序 直接插入排序 逐個將後乙個數加到前面的排好的序中。在直接插入排序過程中,對其中乙個記錄的插入排序稱為一次排序 直接插入排序是從第二個記錄開始進行的,因此,長度為n的...

C語言問題 用選擇法對陣列中數由小到大排序

必須要k吧.注意到k有兩個地方被賦值,k i和if array j 選擇法效率比較低,使用冒泡法應該更容易理解一些,且效率更高.需要k的,k的作用是標記陣列中最小的那個數,因為選擇排序每次選擇後最小的數都被交換到前面,所以假設第i個數為最小的數依次和後面的數進行比較,如果有更小的則把該數的下標賦值給...

c 對一組數進行排序,並求最大值

include using namespace std main for int i 0 i 10 i cout 您好,很高興為您解答,流星不死為您答疑解惑如果本題還有不懂的地方請追問,望採納我的回答。祝樓主學習進步。上面的 可以直接複製到編譯器裡,帶換行。include include inclu...