最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++選擇排序算法實例

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

選擇排序

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

選擇排序的主要優(yōu)點與數據移動有關。如果某個元素位于正確的最終位置上,則它不會被移動。選擇排序每次交換一對元素,它們當中至少有一個將被移到其最終位置上,因此對n個元素的表進行排序總共進行至多n-1次交換。在所有的完全依靠交換去移動元素的排序方法中,選擇排序屬于非常好的一種。選擇排序的時間復雜度也為O(n^2)。

代碼實現

復制代碼 代碼如下:

#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;
}

相關文章

  • C++下程序運行時間的四種常用計時方法總結

    C++下程序運行時間的四種常用計時方法總結

    這篇文章主要介紹了C++下程序運行時間的四種常用計時方法,介紹了幾種常用的計時方法,包括低精度的clock()和GetTickCount(),以及高精度的gettimeofday()和QueryPerformanceCounter(),需要的朋友可以參考下
    2024-09-09
  • 如何為Qt視圖中的文字實現彩虹漸變效果

    如何為Qt視圖中的文字實現彩虹漸變效果

    這篇文章主要給大家介紹了關于如何為Qt視圖中的文字實現彩虹漸變效果的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用Qt具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • C++提取文件中信息的方法

    C++提取文件中信息的方法

    這篇文章主要為大家詳細介紹了C++提取文件中信息的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • C語言 詳細分析結構體的內存對齊

    C語言 詳細分析結構體的內存對齊

    C 數組允許定義可存儲相同類型數據項的變量,結構是 C 編程中另一種用戶自定義的可用的數據類型,它允許你存儲不同類型的數據項,本篇讓我們來了解C 的結構體內存對齊
    2022-03-03
  • OpenCV實現圖像去噪算法的步驟詳解

    OpenCV實現圖像去噪算法的步驟詳解

    這篇文章主要為大家介紹了OpenCV中圖像去噪算法的原理,文中通過示例為大家詳細講解了圖像去噪算法的使用,感興趣的小伙伴可以了解一下
    2022-06-06
  • 常用的C語言編程工具匯總

    常用的C語言編程工具匯總

    c語言編程軟件適于編寫系統(tǒng)軟件,是學習編程的同學們的必備軟件。c語言一種非常強大的計算機語言,應用非常廣泛,不僅僅是在軟件開發(fā)上,而且各類科研都會用到c語言。今天小編給大家匯總下C語言的編程工具
    2018-01-01
  • Linux中利用c語言刪除某個目錄下的文件

    Linux中利用c語言刪除某個目錄下的文件

    這篇文章主要給大家介紹了Linux中利用c語言刪除某個目錄下文件的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 詳解C++編程中的單目運算符重載與雙目運算符重載

    詳解C++編程中的單目運算符重載與雙目運算符重載

    這篇文章主要介紹了詳解C++編程中的單目運算符重載與雙目運算符重載,是C++入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09
  • C++實現雙向鏈表

    C++實現雙向鏈表

    這篇文章主要為大家詳細介紹了C++實現雙向鏈表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C語言qsort()函數的使用方法詳解

    C語言qsort()函數的使用方法詳解

    qsort是一個庫函數,基于快速排序算法實現的一個排序的函數,下面這篇文章主要給大家介紹了關于C語言qsort()函數使用的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06

最新評論

宜都市| 玉树县| 台北县| 慈利县| 大名县| 连云港市| 沭阳县| 海盐县| 大名县| 资兴市| 嘉定区| 班玛县| 瑞昌市| 洱源县| 安福县| 布尔津县| 晋中市| 绥中县| 祁阳县| 南岸区| 璧山县| 昭觉县| 大兴区| 堆龙德庆县| 淮北市| 大竹县| 河源市| 宣恩县| 庆安县| 晋中市| 灵武市| 府谷县| 许昌县| 竹山县| 黔西县| 翼城县| 林甸县| 沁阳市| 祁东县| 冷水江市| 邢台县|