Java-簡単なソート
969 ワード
簡単な選択ソートの基本思想:第1回、n個の要素の中からキーワードの最小の要素を探し出して第1の要素と交換する;第2回目は、第2の要素から始まるn−1の要素のうち、選択キーワードが最も小さい要素と第2の要素とを交換する.このように、k番目のステップでは、k番目の要素から始まるn−k+1番目の要素のうち、キーワードが最も小さい要素を選択し、シーケンス全体がキーワード順になるまでk番目の要素と交換する.
スペース効率:並べ替えを簡単に選択するには、補助スペースが必要であることは明らかです.
時間効率:さらに単純にソートを選択する場合、必要な移動要素の回数は少なく、ソートシーケンスが既に整列している場合、単純にソートを選択する場合は移動要素を必要とせず、最悪の場合、ソート対象シーケンス自体が逆シーケンスである場合、移動要素の回数は3(n-1)となる.しかし、単純選択ソート中に要素が移動する回数にかかわらず、いずれの場合も、単純選択ソートはn(n−1)/2回の比較操作を行う必要があるため、単純選択ソートの時間的複雑度O(n 2)
実は、この簡単な選択ソートに基づいて、このアルゴリズムの改善空間を深く考えることができます.后期はフォローします...
public static void test2(int[] r) {
for(int i = 1;i < r.length;i++) {
int j = i - 1;
int min = r[j]; //
for(;j r[j]) {//
int temp = min;
min = r[j];
r[j] = temp;
}
}
r[i-1] = min; //
}
}
スペース効率:並べ替えを簡単に選択するには、補助スペースが必要であることは明らかです.
時間効率:さらに単純にソートを選択する場合、必要な移動要素の回数は少なく、ソートシーケンスが既に整列している場合、単純にソートを選択する場合は移動要素を必要とせず、最悪の場合、ソート対象シーケンス自体が逆シーケンスである場合、移動要素の回数は3(n-1)となる.しかし、単純選択ソート中に要素が移動する回数にかかわらず、いずれの場合も、単純選択ソートはn(n−1)/2回の比較操作を行う必要があるため、単純選択ソートの時間的複雑度O(n 2)
実は、この簡単な選択ソートに基づいて、このアルゴリズムの改善空間を深く考えることができます.后期はフォローします...