欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++實(shí)現(xiàn)選擇排序(selectionSort)

 更新時(shí)間:2020年04月26日 17:24:47   作者:ChanJose  
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)選擇排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(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++ STL常用遍歷算法

    c++ STL常用遍歷算法

    這篇文章主要介紹了c++ STL常用遍歷算法的實(shí)現(xiàn),幫助大家更好的理解和使用c++,感興趣的朋友可以了解下
    2020-12-12
  • c語(yǔ)言for、while和do-while循環(huán)之間的區(qū)別

    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)

    這篇文章主要介紹了字典樹(shù)的基本知識(shí)及使用C語(yǔ)言的相關(guān)實(shí)現(xiàn),這也是ACM等計(jì)算機(jī)考試和競(jìng)賽題目的基本知識(shí),需要的朋友可以參考下
    2015-08-08
  • C語(yǔ)言函數(shù)指針詳解

    C語(yǔ)言函數(shù)指針詳解

    大家好,本篇文章主要講的是C語(yǔ)言函數(shù)指針詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Matlab實(shí)現(xiàn)帶豎線散點(diǎn)的核密度圖的繪制

    Matlab實(shí)現(xiàn)帶豎線散點(diǎn)的核密度圖的繪制

    核密度估計(jì)是用于估計(jì)隨機(jī)變量概率密度函數(shù)的一種非參數(shù)方法。核密度圖不失為一種用來(lái)觀察連續(xù)型變量分布的有效方法。本文將用Matlab實(shí)現(xiàn)帶豎線散點(diǎn)的核密度圖的繪制,感興趣的可以了解一下
    2022-08-08
  • C語(yǔ)言實(shí)現(xiàn)單鏈表反轉(zhuǎn)

    C語(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-07
  • 詳解C++編程中斷言static_assert的使用

    詳解C++編程中斷言static_assert的使用

    這篇文章主要介紹了C++編程中斷言static_assert的使用,斷言在debug時(shí)非常有用,是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-01-01
  • C++11新特性之a(chǎn)uto的使用

    C++11新特性之a(chǎn)uto的使用

    熟悉腳本語(yǔ)言的人都知道,很多腳本語(yǔ)言都引入了“類型自動(dòng)推斷”技術(shù):比如Python,可以直接聲明變量,在運(yùn)行時(shí)進(jìn)行類型檢查。隨著C++11標(biāo)準(zhǔn)的發(fā)布,C++語(yǔ)言也引入了類型自動(dòng)推斷的功能。這篇文章主要介紹了C++11新特性之a(chǎn)uto的使用,有需要的朋友們可以參考借鑒。
    2016-12-12
  • C語(yǔ)言strlen,strcpy,strcmp,strcat,strstr字符串操作函數(shù)實(shí)現(xiàn)

    C語(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-09
  • C語(yǔ)言編程中的聯(lián)合體union入門學(xué)習(xí)教程

    C語(yǔ)言編程中的聯(lián)合體union入門學(xué)習(xí)教程

    這篇文章主要介紹了C語(yǔ)言編程中的聯(lián)合體union入門學(xué)習(xí)教程,也是C語(yǔ)言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-12-12

最新評(píng)論