国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++選擇排序算法實例

2020-01-26 15:15:58
字體:
來源:轉載
供稿:網友

選擇排序

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

選擇排序的主要優點與數據移動有關。如果某個元素位于正確的最終位置上,則它不會被移動。選擇排序每次交換一對元素,它們當中至少有一個將被移到其最終位置上,因此對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;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德安县| 临沧市| 革吉县| 清镇市| 滨州市| 永春县| 巴彦县| 客服| 珠海市| 读书| 龙胜| 兴海县| 通渭县| 弥渡县| 通海县| 咸阳市| 青田县| 陇川县| 龙州县| 根河市| 咸宁市| 印江| 宁陵县| 隆子县| 顺平县| 海安县| 桑植县| 福泉市| 阳曲县| 海伦市| 金坛市| 绥滨县| 东港市| 绥棱县| 綦江县| 深圳市| 镇安县| 象山县| 许昌县| 桂平市| 高阳县|