日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

c++选择排序

發(fā)布時(shí)間:2024/9/27 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++选择排序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

引言

選擇排序就是找出每趟中的最小值或者最大值與對(duì)應(yīng)趟數(shù)位置上的數(shù)值進(jìn)行交換,從而排序,具體像序列:2,5,4,3,8若按照從小到大的順序選擇排序,總共5個(gè)元素,需要進(jìn)行5-1趟操作,第一趟找出2,5,4,3,8中的最小值2與第一個(gè)位置上的數(shù)進(jìn)行交換變?yōu)?,5,4,3,8,第二趟在剩下的元素5,4,3,8中找到最小值3,與第二個(gè)位置上的元素5交換,整體變?yōu)?#xff0c;2,3,4,5,8,第三趟在剩下的三個(gè)元素4,5,8中找出最小值4,與第三個(gè)位置上的元素進(jìn)行交換變?yōu)?#xff1a;2,3,4,5,8,第四趟在剩下的元素5,8中找到最小值5與第四個(gè)位置上的元素交換位置,變?yōu)?,3,4,5,8,至此完成了選擇排序,這里對(duì)于最后一個(gè)元素?zé)o需進(jìn)行上述的操作。若按照從大到小的順序選擇排序,每一趟找出的應(yīng)是最大值。

示例

下面實(shí)現(xiàn)按照從小到大的順序選擇排序。代碼如下:
SelectSort.cpp

// SelectSort.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。 //#include "stdafx.h" #include <iostream> #include <stdlib.h> using namespace std;/************************************************************************/ /* 功能:選擇排序(從小到大) 2,5,4,3,8功能函數(shù):void swap(int *p1,int *p2) 交換兩個(gè)數(shù)的值void selectSort(int *parr,int n) 選擇排序void printArr(int *parr,int n) 輸出數(shù)組中的值*/ /************************************************************************/void swap(int *p1,int *p2) {int temp;temp = *p1;*p1 = *p2;*p2 = temp; }void selectSort(int *parr,int n) {for(int i = 0; i < n-1; ++i){int min = parr[i];//默認(rèn)每一趟第一個(gè)值為最小值for(int j = i; j < n; ++j)//獲取該趟最小值{if (parr[j] < min){swap(parr[j],min);}}if(min != parr[i]){swap(parr[i],min);//最小值與對(duì)應(yīng)趟的位置上數(shù)值交換} } }void printArr(int *parr,int n) {for(int i = 0;i < n ; ++i){cout<<parr[i]<<"\t";} }int _tmain(int argc, _TCHAR* argv[]) {int array[] = {2,5,4,3,8};printArr(array,5);cout<<endl;selectSort(array,5);printArr(array,5);cout<<endl;system("pause");return 0; }

項(xiàng)目是基于vs2010的控制臺(tái)輸出程序,其結(jié)構(gòu)如下:

運(yùn)行效果

總結(jié)

以上是生活随笔為你收集整理的c++选择排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。