C++實(shí)現(xiàn)選擇排序(selectionSort)
本文實(shí)例為大家分享了C++實(shí)現(xiàn)選擇排序的具體代碼,供大家參考,具體內(nèi)容如下
一、思路
每次取剩下沒(méi)排序的數(shù)中的最小數(shù),然后,填到對(duì)應(yīng)位置。(可以使用a[0]位置作為暫存單元)
如下:
二、實(shí)現(xiàn)程序
#include <iostream> using namespace std; const int maxSize = 100; template<class T> void SelectSort(T arr[], int n); // 選擇排序 int main(int argc, const char * argv[]) { int i, n, arr[maxSize]; cout << "請(qǐng)輸入要排序的數(shù)的個(gè)數(shù):"; cin >> n; cout << "請(qǐng)輸入要排序的數(shù):"; for(i = 1; i <= n; i++) // arr[0]不存放值,用來(lái)做暫存單元 cin >> arr[i]; cout << "排序前:" << endl; for(i = 1; i <= n; i++) cout << arr[i] << " "; cout << endl; SelectSort(arr, n); cout << "排序后:" << endl; for(i = 1; i <= n; i++) cout << arr[i] << " "; cout << endl; return 0; } // 直接選擇排序 template <class T> void SelectSort(T arr[], int n) { int i, j, pos; for(i = 1; i < n; i++) { // 共作n-1趟選擇排序 pos = i; // 保存最小數(shù)的位置 for(j = i; j <= n; j++) { // 找比arr[i]更小的值 if(arr[j] < arr[pos]) { pos = j; // 指向更小的數(shù)的位置 } } if(pos != i) { // 找到了更小的值,就交換位置 arr[0] = arr[i]; // arr[0]作為暫存單元 arr[i] = arr[pos]; arr[pos] = arr[0]; } } // for } // SelectSort
測(cè)試數(shù)據(jù):
7
20 12 50 70 2 8 40
測(cè)試結(jié)果:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
c語(yǔ)言for、while和do-while循環(huán)之間的區(qū)別
大家好,本篇文章主要講的是c語(yǔ)言for、while和do-while循環(huán)之間的區(qū)別,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01字典樹(shù)的基本知識(shí)及使用C語(yǔ)言的相關(guān)實(shí)現(xiàn)
這篇文章主要介紹了字典樹(shù)的基本知識(shí)及使用C語(yǔ)言的相關(guān)實(shí)現(xiàn),這也是ACM等計(jì)算機(jī)考試和競(jìng)賽題目的基本知識(shí),需要的朋友可以參考下2015-08-08Matlab實(shí)現(xiàn)帶豎線散點(diǎn)的核密度圖的繪制
核密度估計(jì)是用于估計(jì)隨機(jī)變量概率密度函數(shù)的一種非參數(shù)方法。核密度圖不失為一種用來(lái)觀察連續(xù)型變量分布的有效方法。本文將用Matlab實(shí)現(xiàn)帶豎線散點(diǎn)的核密度圖的繪制,感興趣的可以了解一下2022-08-08C語(yǔ)言實(shí)現(xiàn)單鏈表反轉(zhuǎn)
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)單鏈表反轉(zhuǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07C語(yǔ)言strlen,strcpy,strcmp,strcat,strstr字符串操作函數(shù)實(shí)現(xiàn)
這篇文章主要介紹了C語(yǔ)言strlen,strcpy,strcmp,strcat,strstr字符串操作函數(shù)實(shí)現(xiàn),,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-09-09C語(yǔ)言編程中的聯(lián)合體union入門學(xué)習(xí)教程
這篇文章主要介紹了C語(yǔ)言編程中的聯(lián)合體union入門學(xué)習(xí)教程,也是C語(yǔ)言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-12-12