生活随笔
收集整理的這篇文章主要介紹了
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
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
using namespace std
;
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++选择排序的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。