随手小代码——选择算法排序

=================================版权声明=================================

版权声明:本文为博主原创文章 未经许可不得转载 

请通过右侧公告中的“联系邮箱([email protected])”联系我

未经作者授权勿用于学术性引用。

未经作者授权勿用于商业出版、商业印刷、商业引用以及其他商业用途。                   

 

本文不定期修正完善,为保证内容正确,建议移步原文处阅读。                                                               <--------总有一天我要自己做一个模板干掉这只土豆

本文链接:http://www.cnblogs.com/wlsandwho/p/4676469.html

耻辱墙:http://www.cnblogs.com/wlsandwho/p/4206472.html

=======================================================================

顺便写个小代码

 1 #include "stdafx.h"

 2 #include <iostream>

 3 

 4 using namespace std;

 5 

 6 

 7 int FindMin(int nArr[],int nLen,int nStartPos,int& nMinPos)

 8 {

 9     int nMin;

10     nMin=nArr[nStartPos];

11 

12     int i=nStartPos;

13     nMinPos=nStartPos;

14 

15     while(i<nLen)

16     {

17         if (nMin>nArr[i])

18         {

19             nMin=nArr[i];

20             nMinPos=i;

21         }

22 

23         ++i;

24     }

25 

26     return nMin;

27 }

28 

29 bool SelectSortByWLS(int nArr[],int nLen)

30 {

31     int i=0;

32     int nMin=-1;

33     int nTemp;

34     int nPos;

35     int nTimes=nLen-1;

36     while (i<nTimes)

37     {

38         nMin=FindMin(nArr,nLen,i+1,nPos);

39         if (nArr[i]>nMin)

40         {

41             nTemp=nArr[i];

42             nArr[i]=nMin;

43             nArr[nPos]=nTemp;

44         }

45 

46         ++i;

47     }

48 

49     return true;

50 }

51 

52 int _tmain(int argc, _TCHAR* argv[])

53 {

54 //     int nArray[6]={0,2,1,3,4};

55 //     int nMinPos;

56 //     int nMinVal;

57 //     nMinVal=FindMin(nArray,5,1,nMinPos);

58 //     cout<<nMinVal<<"    "<<nMinPos<<endl;

59 

60     int nArray[10]={9,2,6,3,0,7,4,8,1,5};

61     SelectSortByWLS(nArray,10);

62     

63     for (int i=0;i<10;++i)

64     {

65         cout<<nArray[i]<<" ";

66     }

67     cout<<endl;

68 

69     return 0;

70 }

 

你可能感兴趣的:(算法)