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

C++選擇排序算法實例

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

選擇排序

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

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

代碼實現(xiàn)

復制代碼 代碼如下:

#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視圖中的文字實現(xiàn)彩虹漸變效果

    如何為Qt視圖中的文字實現(xiàn)彩虹漸變效果

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

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

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

    C語言 詳細分析結構體的內(nèi)存對齊

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

    OpenCV實現(xiàn)圖像去噪算法的步驟詳解

    這篇文章主要為大家介紹了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++實現(xiàn)雙向鏈表

    C++實現(xiàn)雙向鏈表

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

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

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

最新評論

来宾市| 长子县| 泰宁县| 安西县| 拉萨市| 敖汉旗| 方正县| 河西区| 延边| 承德市| 安阳市| 亳州市| 锡林郭勒盟| 密山市| 黄平县| 永新县| 延川县| 平江县| 岚皋县| 扎鲁特旗| 靖江市| 屯昌县| 荃湾区| 通化市| 江源县| 望都县| 靖宇县| 容城县| 西林县| 丘北县| 百色市| 池州市| 班戈县| 喜德县| 巫溪县| 疏勒县| 方山县| 荃湾区| 抚松县| 萍乡市| 青田县|