運動の回答
レビューのタイトル
前回の記事では、我々は例えば、選択ソートについて話す、配置する多数の列で育ちました。最後次の質問:
あなたが降順に達成したい場合は、どのようにそれを行うには上記のコードを修正するには?
同様に、この質問に答えるためには、次の答えを入れて、非常に簡単です。
答え
私たちは、選択ソートが最も小さい数選出され、小規模から大規模まで、知っている、と開始するのに最適な位置に配置します。降順場合同様に、それだけの非常に初めに最大数、その場所を選択する必要があります。以下のコードを参照してください。
public static void selectSort(int[] arr) {
for (int i = 0; i < arr.length; i++) {
int min = i;
for (int j = i; j < arr.length; j++) {
if (arr[j] > arr[min]) {
min = j;
}
}
if (min != i) {
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
}
どのように、あなたはまだそれを得ましたか。
挿入ソート-この記事の内容は、第三のソート方法についてです。
または問題の前に:
挑戦課題
既存のデジタル以下:
3,44,38,5,47,15,36,26,27,2,46,4,19,50,48
15桁の合計は、小から大に順次配置されてください。
解析アルゴリズム
焦点を当て、「挿入ソート」、いわゆる「挿入。」具体的には、列の数は、内部のすべての要素を評価することです。この評価が順次行われ、その前の値(小から大順に時間)よりも小さい場合に評価の最後の要素が完了するまで、列の数は、その値未満にそれを戻します。
全体のプロセスはより明確に直接的に実証する以下のアクションフィギュアと連動して、理解することは難しいことではありません。
詳細な手順
私たちは、全体の挿入ソートのステップ解体によって歩を踏み出してみましょう:
- ソートされていると考えることができ、最初の要素で始まります。
- 前方スキャンから次の要素を削除する要素の順序でソートされています。
- 要素(ソート)は、新しい要素、次の位置への要素よりも大きい場合。
- ステップ3を繰り返し、それは以下の要素の新しい位置に等しいソート要素を見つけるまで。
- 新しい要素がこの位置に挿入された後、繰り返して、最後の要素が完了するまで2〜5ステップ。
以下に示すように全体のプロセス:
擬似コード
次に、我々は、上記の処理を実現するための擬似コードを使用します
InsertSort (input ele[],input length)
for i <-- 1 to n-1
for j <-- i-1 to 0
if a[i] > a[j] break
if j!=i-1
temp <-- a[i]
for k <-- i to j+2
a[k] <-- a[k-1]
a[j+1] <-- temp
end
Javaコードの実装
次に、我々は、上記のアルゴリズムを達成するために、Javaプログラミング言語を使用します。
public static void insertSort(int[] arr) {
int temp;
int j;
for (int i = 1; i < arr.length; i++) {
for (j = i - 1; j >= 0; j--) {
if (arr[i] > arr[j])
break;
}
if (j != i - 1) {
temp = arr[i];
for (int k = i; k > j + 1; k--) {
arr[k] = arr[k - 1];
}
arr[j + 1] = temp;
}
}
}
質問
それを行うには上記のコードを変更する方法1.あなたは降順で実現したい場合は、?
質問はまだ内の次のシリアル化された中で発表される答え、私たちは、ああ燃料を補給します!