日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++选择排序

發布時間:2024/9/27 c/c++ 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++选择排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

選擇排序就是找出每趟中的最小值或者最大值與對應趟數位置上的數值進行交換,從而排序,具體像序列:2,5,4,3,8若按照從小到大的順序選擇排序,總共5個元素,需要進行5-1趟操作,第一趟找出2,5,4,3,8中的最小值2與第一個位置上的數進行交換變為2,5,4,3,8,第二趟在剩下的元素5,4,3,8中找到最小值3,與第二個位置上的元素5交換,整體變為,2,3,4,5,8,第三趟在剩下的三個元素4,5,8中找出最小值4,與第三個位置上的元素進行交換變為:2,3,4,5,8,第四趟在剩下的元素5,8中找到最小值5與第四個位置上的元素交換位置,變為2,3,4,5,8,至此完成了選擇排序,這里對于最后一個元素無需進行上述的操作。若按照從大到小的順序選擇排序,每一趟找出的應是最大值。

示例

下面實現按照從小到大的順序選擇排序。代碼如下:
SelectSort.cpp

// SelectSort.cpp : 定義控制臺應用程序的入口點。 //#include "stdafx.h" #include <iostream> #include <stdlib.h> using namespace std;/************************************************************************/ /* 功能:選擇排序(從小到大) 2,5,4,3,8功能函數:void swap(int *p1,int *p2) 交換兩個數的值void selectSort(int *parr,int n) 選擇排序void printArr(int *parr,int n) 輸出數組中的值*/ /************************************************************************/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];//默認每一趟第一個值為最小值for(int j = i; j < n; ++j)//獲取該趟最小值{if (parr[j] < min){swap(parr[j],min);}}if(min != parr[i]){swap(parr[i],min);//最小值與對應趟的位置上數值交換} } }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; }

項目是基于vs2010的控制臺輸出程序,其結構如下:

運行效果

總結

以上是生活随笔為你收集整理的c++选择排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。