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

C++選擇排序算法實例

 更新時間:2014年10月09日 08:56:48   作者:果凍想  
這篇文章主要介紹了C++選擇排序算法實例,本文先是介紹了什么是選擇排序,然后給出了實現(xiàn)代碼,需要的朋友可以參考下

選擇排序

選擇排序是一種簡單直觀的排序算法,它的工作原理如下。首先在未排序序列中找到最?。ù螅┰?,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續(xù)尋找最?。ù螅┰?,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

選擇排序的主要優(yōu)點與數(shù)據(jù)移動有關(guān)。如果某個元素位于正確的最終位置上,則它不會被移動。選擇排序每次交換一對元素,它們當(dāng)中至少有一個將被移到其最終位置上,因此對n個元素的表進(jìn)行排序總共進(jìn)行至多n-1次交換。在所有的完全依靠交換去移動元素的排序方法中,選擇排序?qū)儆诜浅:玫囊环N。選擇排序的時間復(fù)雜度也為O(n^2)。

代碼實現(xiàn)

復(fù)制代碼 代碼如下:

#include <iostream>
using namespace std;
 
void SelectSort(int arr[], int length)
{
     int temp, min;
     for (int i = 0; i < length - 1; ++i)
     {
          min = i;
 
          // 尋找最小值
          for (int j = i + 1; j < length; ++j)
          {
               if (arr[j] < arr[min])
                    min = j;
          }
 
          // 交換
          if (min != i)
          {
               temp = arr[i];
               arr[i] = arr[min];
               arr[min] =temp;
          }
     }
}
 
int main()
{
     int arr[10] = {2, 4, 1, 0, 8, 4, 8, 9, 20, 7};
 
     SelectSort(arr, sizeof(arr) / sizeof(arr[0]));
 
     for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i)
     {
          cout<<arr[i]<<" ";
     }
     cout<<endl;
 
     return 0;
}

相關(guān)文章

  • C語言實現(xiàn)自行車管理系統(tǒng)

    C語言實現(xiàn)自行車管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)自行車管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C++ 中的虛函數(shù)表及虛函數(shù)執(zhí)行原理詳解

    C++ 中的虛函數(shù)表及虛函數(shù)執(zhí)行原理詳解

    這篇文章主要介紹了C++ 中的虛函數(shù)表及虛函數(shù)執(zhí)行原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • cocos2d-x學(xué)習(xí)筆記之CCLayer、CCLayerColor、CCLayerGradient、CCLayerMultiplex場景層介紹

    cocos2d-x學(xué)習(xí)筆記之CCLayer、CCLayerColor、CCLayerGradient、CCLayerMu

    這篇文章主要介紹了cocos2d-x學(xué)習(xí)筆記之CCLayer、CCLayerColor、CCLayerGradient、CCLayerMultiplex場景層介紹,需要的朋友可以參考下
    2014-09-09
  • 詳解C++中string的用法和例子

    詳解C++中string的用法和例子

    string是C++標(biāo)準(zhǔn)庫的一個重要的部分,主要用于字符串處理。這篇文章主要介紹了C++ string的用法和例子,需要的朋友可以參考下
    2018-05-05
  • FFmpeg實現(xiàn)將編碼后數(shù)據(jù)保存成mp4

    FFmpeg實現(xiàn)將編碼后數(shù)據(jù)保存成mp4

    這篇文章主要為大家詳細(xì)介紹了FFmpeg如何實現(xiàn)將編碼后數(shù)據(jù)保存成mp4,即從內(nèi)存塊中獲取原始數(shù)據(jù),然后依次進(jìn)行解碼、編碼、最后保存成mp4視頻文件,感興趣的可以了解一下
    2023-08-08
  • Linux中使用C語言實現(xiàn)基于UDP協(xié)議的Socket通信示例

    Linux中使用C語言實現(xiàn)基于UDP協(xié)議的Socket通信示例

    這篇文章主要介紹了Linux中使用C語言實現(xiàn)基于UDP協(xié)議的socket通信示例,服務(wù)器端與客戶端的功能都非?;A(chǔ),需要的朋友可以參考下
    2016-03-03
  • C++實現(xiàn)通訊錄系統(tǒng)項目實戰(zhàn)

    C++實現(xiàn)通訊錄系統(tǒng)項目實戰(zhàn)

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)通訊錄系統(tǒng)項目實戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 使用C++實現(xiàn)FTP上傳和下載

    使用C++實現(xiàn)FTP上傳和下載

    當(dāng)在Windows上使用C++進(jìn)行FTP上傳和下載時,您可以使用libcurl庫來簡化操作,本文將為大家詳細(xì)介紹具體步驟,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • C++學(xué)習(xí)筆記之淺談異常處理

    C++學(xué)習(xí)筆記之淺談異常處理

    C++ 提供了異常機(jī)制,讓我們能夠捕獲運行時錯誤,本文就詳細(xì)的介紹了C++異常處理入門,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C語言container of()函數(shù)案例詳解

    C語言container of()函數(shù)案例詳解

    這篇文章主要介紹了C語言container of()函數(shù)案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論