アルゴリズムの説明:特定のレコードセットについて、最初に長さ1の隣接する2つのサブシーケンスごとにマージして、長さ2または1のサブシーケンスを順序付けたn/2(上向き)を取得し、次にペアにマージし、順序付けされたシーケンスが取得されるまでこのプロセスを繰り返します。
パッケージソート;/***マージソート*平均O(nlogn)、best o(nlogn)、最悪のo(nlogn);空間の複雑さo(n);安定した;より複雑な * @author zeng * */public class mergesort {public static void merge(int [] a、int start、int mid、int end){int [] tmp = new int [a.length]; system.out.println( "merge" + start + "〜" + end); int i = start; (a [i] <a [j])tmp [k ++] = a [i ++]; else tmp [k ++] = a [j ++];} while(i!= mid+1)tmp [k ++] = a [i ++]; while(j!= end+1)tmp [k ++] = a [j ++]; "); system.out.println();} static void mergesort(int [] a、int start、end){if(int <end){int mid =(start + end)/ 2; mergesort(a、start、mid); //注文されたmergesort(a、mid + 1、end); args){int [] b = {49、38、65、97、76、13、27、50}; mergesort(b、0、b.length -1);}}}操作の結果を見てみましょう。
要約します
上記は、Javaソートアルゴリズムのマージソートの単純な実装に関するこの記事のすべての内容です。私はそれが誰にでも役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!