Java-簡単なソート

969 ワード

簡単な選択ソートの基本思想:第1回、n個の要素の中からキーワードの最小の要素を探し出して第1の要素と交換する;第2回目は、第2の要素から始まるn−1の要素のうち、選択キーワードが最も小さい要素と第2の要素とを交換する.このように、k番目のステップでは、k番目の要素から始まるn−k+1番目の要素のうち、キーワードが最も小さい要素を選択し、シーケンス全体がキーワード順になるまでk番目の要素と交換する.
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)
実は、この簡単な選択ソートに基づいて、このアルゴリズムの改善空間を深く考えることができます.后期はフォローします...