選擇排序法| C++與演算法

文章推薦指數: 80 %
投票人數:10人

選擇排序法(Selection Sort). 生活中經常要用到排序、分類,例如:. 將成績由高到低排序; 將喜好程度由高到低排序; 將可回收的垃圾分類; 將筆電的價錢排序 . 課程介紹 0.1. 為什麼要學程式設計? 1. 關於作者 2. 程式是什麼 3. C++入門 3.1. 編輯器Dev-C++ 3.2. 基本架構與輸出 3.2.1. 除法/ 3.2.2. 取餘數% 3.3. 變數 3.3.1. 變數型態與變數宣告 3.3.2. 輸出變數值 3.3.3. 指派變數值 3.3.4. 輸入變數值 3.3.4.1. 題目-我想長高 3.3.4.1.1. 解答 3.3.4.2. 題目-剩多少錢? 3.3.4.2.1. 解答 3.3.4.3. 題目-等我一下 3.3.4.3.1. 解答 3.3.5. 重複輸入 3.3.5.1. 題目-多項式計算 3.3.5.1.1. 解答 3.3.5.2. 題目-哈囉 3.3.5.2.1. 解答 3.3.6. 思考問題:變數交換 3.3.6.1. 解答 3.4. if條件式 3.4.1. if-else條件式 3.5. 條件運算 3.5.1. 關係運算 3.5.1.1. 題目-判斷倍數 3.5.1.1.1. 解答 3.5.2. 邏輯運算 3.5.3. 題目-我能結婚嗎? 3.5.3.1. 解答 3.5.4. 題目-三角形邊長 3.5.4.1. 解答 3.5.5. 題目-上學去吧! 3.5.5.1. 解答 3.6. 巢狀if 3.7. 迴圈 3.7.1. while迴圈 3.7.2. while與數列 3.7.3. 題目-找出所有因數 3.7.3.1. 解答 3.7.4. 題目-判斷質數 3.7.4.1. 解答 3.7.5. 題目-有幾位數 3.7.5.1. 解答 3.7.6. 跳出迴圈break 3.7.7. 題目-Feynman 3.7.7.1. 解答 3.8. 陣列 3.8.1. 題目-翻轉吧,身高! 3.8.1.1. 解答 3.8.2. 題目-成績查詢系統 3.8.2.1. 解答 3.8.3. 題目-關注學生 3.8.3.1. 解答 3.8.4. 題目-存存提提 3.8.4.1. 解答 4. 小試身手 4.1. ZeroJudge-兩光法師占卜術 4.1.1. 解答 4.2. UVA-BacktoHighSchoolPhysics 4.2.1. 解答 4.3. 判斷閏年 4.3.1. 解答 4.4. UVA-Zapping 4.4.1. 解答 4.5. UVA-DangerousDive 4.5.1. 解答 4.6. UVA-BoxofBricks 4.6.1. 解答 4.7. ZeroJudge-Sagit's計分程式 4.7.1. 解答 4.8. 質因數分解 4.8.1. 解答 4.9. 3n+1猜想 4.9.1. 測試資料 4.9.2. 解答 4.10. UVA-3n+1 4.10.1. 解答 5. C++基礎 5.1. 單選判斷if-elseif-else 5.2. for迴圈 5.3. 運算式簡寫 5.4. 巢狀迴圈 5.4.1. 題目-直角三角形製造機 5.4.1.1. 解答 5.4.2. 題目-金字塔製造機 5.4.2.1. 解答 5.4.3. 題目-九九乘法表 5.4.3.1. 解答 5.5. 選擇排序法 5.6. 函式 5.6.1. 內建函式 5.6.2. 自訂函式 5.7. 遞迴 5.7.1. 費氏數列 5.7.2. 輾轉相除法 5.8. 文字處理-字元與字串 5.8.1. 字元(char) 5.8.1.1. 跳脫字元 5.8.2. 字串(string) 5.8.3. 文字處理函式 5.9. 貪婪演算法(Greedy) 5.10. 堆疊(stack)資料結構 5.10.1. 題目-小呆的決心 5.10.1.1. 解答 PublishedusingGitBook A A Serif Sans White Sepia Night Twitter Google Facebook Weibo Instapaper C++與演算法 選擇排序法(SelectionSort) 生活中經常要用到排序、分類,例如: 將成績由高到低排序 將喜好程度由高到低排序 將可回收的垃圾分類 將筆電的價錢排序 ... 對電腦來說,我們可以將排序問題轉化成以下形式 題目-排序 輸入說明 第1列:1個整數N,代表接下來有幾個數字。

(1<=N<=100) 第2列:N個待排序的整數 輸出說明 將輸出由小到大排序 input 12 502576381958298844221134 output 111922252934384450587688 處理排序問題有很多方法,以下介紹其中一種適合入門的選擇排序法 概念 將數字們分成2類,未排序和已排序 一開始所有數字都是未排序 重複N次: 從未排序的數字中挑出最小的數字,放入已排序的最尾端。

依照上述 第1次可以挑到所有數字中第1小的數字(最小的數字) 第2次可以挑到所有數字中第2小的數字 ... 第N次可以挑到所有數字中第N小的數字(最大的數字) 最後就由小到大排完了 實際操作 已排序 未排序 空 502576381958298844221134 11 5025763819582988442234 1119 50257638582988442234 111922 502576385829884434 11192225 5076385829884434 1119222529 50763858884434 111922252934 507638588844 11192225293438 5076588844 1119222529343844 50765888 111922252934384450 765888 11192225293438445058 7688 1119222529343844505876 88 111922252934384450587688 空 code 想像在sort裡的for(i=0;i usingnamespacestd; intmain() { intnum[100]; intN; inti,j,tmp; //[input] cin>>N; for(i=0;i>num[i]; } //[sort] for(i=0;inum[j]) { //變數交換 tmp=num[i]; num[i]=num[j]; num[j]=tmp; } } } //[output] for(i=0;i



請為這篇文章評分?