アルゴリズム選択ソート(選択ソート)(C++)
4241 ワード
📌≪ソートの選択|Select Sort|Planning≫:「≪選択|Select|Planning≫」の最小値でソートするアルゴリズム
▼▼ソートアルゴリズムを選択昇順 この順序の要素の位置が決定されました.配置する要素を選択してください.
1.最初の順序で最小の要素を選択し、最初のidxに入れます.
2.2番目の順序で、残りの値の最小要素を選択し、2番目のidxに入れます. 詳細手順
1.最初のインデックスに基づいて、指定された配列内のすべての要素を比較し、最適な値を探します.
最大値 を最初の値に置き換えます. は、2番目のインデックスを残りの値に同じ方法で置き換えます. 要素が残るまで、1~3つのプロセスを繰り返します.(最後の要素を自動ソート) 💻 選択ソート(selection sort)C++実装コード比較回数 2つのfor文を実行
外部for文:(n-1)回
内部for文:n-1、n-2、...、2、1号 交換 外部ループの実行回数と同じです. を交換するには3回の移動(swap)が必要であるため、3(n-1)回の が必要である. T(n) = (n-1) + (n-2) + … + 2 + 1 = n(n-1)/2 = O(n^2)
▼▼ソートアルゴリズムを選択
1.最初の順序で最小の要素を選択し、最初のidxに入れます.
2.2番目の順序で、残りの値の最小要素を選択し、2番目のidxに入れます.
1.最初のインデックスに基づいて、指定された配列内のすべての要素を比較し、最適な値を探します.
最大値
#include<iostream>
#include<vector>
void selectionSort(vector<int> &v){ #vector의 주소를 매개변수로 넘겨 받아야 원본이 변경됨
for(int i=0; i<v.size()-1; i++){ #마지막 원소는 자동 정렬이므로 vector의 크기 -1
int key = i;
for(int j = i+1; j<v.size(); j++){
if(v[j]<v[key]){
key = j;
}
if( i != key){ #자기자신이 최솟값이면 교체X
swap(v[i], v[key])
}
}
}
}
▼▼並べ替えを選ぶ時間の複雑さ外部for文:(n-1)回
内部for文:n-1、n-2、...、2、1号
Reference
この問題について(アルゴリズム選択ソート(選択ソート)(C++)), 我々は、より多くの情報をここで見つけました https://velog.io/@qhsh866/알고리즘-선택-정렬selection-sortCテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol