ソートアルゴリズムの選択
4599 ワード
選択ソートについて議論しましょう.
整列選択(Selection Sort)
2-1. これにより
特長
整列選択(Selection Sort)
0からlength-1まで簡単に、対応するインデックスに適切な要素を加えてソートすると理解します.昇順を基準に、
i
は、2番目のインデックスから始まり、i+1
をチェックし続け、가장 작은 원소
のインデックスを検索します.i
は、2番目の要素가장 작은 원소가 위치한 인덱스
と交換される.2-1. これにより
i
第2の要素が位置を決定する.length - 1
までこの操作を繰り返すと、ソートが完了します.絵をかく
特長
選択ソートSelection Sort
度発泡ソートBubble Sort
と同様に、O(n 2)O(n^{2})O(n 2)である.バブルソートとは異なり、交換回数が少ない(インデックスを作成して交換する)ことは、バブルソートよりも効果的です.
さらに、追加のアレイIn-place
を必要としないという特徴もある.ただし、場合によっては、正しい位置にある要素も交換されます.これもソートです.
ソース
template<typename T>
class SelectionSort
{
public:
static void sort(vector<T>& arr)
{
if(arr.size() <= 1) return;
int minIndex = 0;
for(int i = 0; i < arr.size() - 1; ++i)
{
minIndex = i;
for(int j = i + 1; j < arr.size(); ++j)
{
if(arr[j] < arr[minIndex])
minIndex = j;
}
swap(arr[i], arr[minIndex]);
}
}
};
Reference
この問題について(ソートアルゴリズムの選択), 我々は、より多くの情報をここで見つけました
https://velog.io/@redgem92/알고리즘-선택-정렬
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
template<typename T>
class SelectionSort
{
public:
static void sort(vector<T>& arr)
{
if(arr.size() <= 1) return;
int minIndex = 0;
for(int i = 0; i < arr.size() - 1; ++i)
{
minIndex = i;
for(int j = i + 1; j < arr.size(); ++j)
{
if(arr[j] < arr[minIndex])
minIndex = j;
}
swap(arr[i], arr[minIndex]);
}
}
};
Reference
この問題について(ソートアルゴリズムの選択), 我々は、より多くの情報をここで見つけました https://velog.io/@redgem92/알고리즘-선택-정렬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol