思想:先依次比较两个数组c;按照小的就传入新的数组。当这次比较完之后可能有一个数组的长度很长c;留下一些数组c;然后在新数组的末尾插入即可。
color:#008080">1 color:#0000ff">classcolor:#000000"> ArraySort
color:#008080"> 2 color:#000000">{
color:#008080"> 3 color:#000000"> color:#008000">//color:#008000">两个有序数组的合并函数color:#008000">
color:#008080"> 4 color:#008000">color:#000000"> color:#0000ff">publiccolor:#000000"> color:#0000ff">staticcolor:#000000"> color:#0000ff">intcolor:#000000">[] MergeList(color:#0000ff">intcolor:#000000"> a[],color:#0000ff">intcolor:#000000"> b[])
color:#008080"> 5 color:#000000"> {
color:#008080"> 6 color:#000000"> color:#0000ff">intcolor:#000000"> result[];
color:#008080"> 7 color:#000000"> color:#0000ff">ifcolor:#000000">(checkSort(a) color:#000000">&&color:#000000"> checkSort(b)) color:#008000">//color:#008000">检查传入的数组是否是有序的color:#008000">
color:#008080"> 8 color:#008000">color:#000000"> {
color:#008080"> 9 color:#000000"> result color:#000000">=color:#000000"> color:#0000ff">newcolor:#000000"> color:#0000ff">intcolor:#000000">[a.lengthcolor:#000000">+color:#000000">b.length];
color:#008080">10 color:#000000">
color:#008080">11 color:#000000"> color:#0000ff">intcolor:#000000"> icolor:#000000">=color:#000000">0color:#000000">,jcolor:#000000">=color:#000000">0color:#000000">,kcolor:#000000">=color:#000000">0color:#000000">; color:#008000">//color:#008000">i:用于标示a数组 j:用来标示b数组 k:用来标示传入的数组color:#008000">
color:#008080">12 color:#008000">color:#000000">
color:#008080">13 color:#000000"> color:#0000ff">whilecolor:#000000">(icolor:#000000"><color:#000000">a.length color:#000000">&&color:#000000"> jcolor:#000000"><color:#000000">b.length)
color:#008080">14 color:#000000"> color:#0000ff">ifcolor:#000000">(a[i] color:#000000"><=color:#000000"> b[j]) {
color:#008080">15 color:#000000"> result[kcolor:#000000">++color:#000000">] color:#000000">=color:#000000"> a[icolor:#000000">++color:#000000">];
color:#008080">16 color:#000000"> }color:#0000ff">elsecolor:#000000">{
color:#008080">17 color:#000000"> result[kcolor:#000000">++color:#000000">] color:#000000">=color:#000000"> b[jcolor:#000000">++color:#000000">];
color:#008080">18 color:#000000"> }
color:#008080">19 color:#000000">
color:#008080">20 color:#000000"> color:#008000">/*color:#008000"> 后面连个while循环是用来保证两个数组比较完之后剩下的一个数组里的元素能顺利传入 color:#008000">*/color:#000000">
color:#008080">21 color:#000000"> color:#0000ff">whilecolor:#000000">(i color:#000000"><color:#000000"> a.length)
color:#008080">22 color:#000000"> result[kcolor:#000000">++color:#000000">] color:#000000">=color:#000000"> a[icolor:#000000">++color:#000000">];
color:#008080">23 color:#000000"> color:#0000ff">whilecolor:#000000">(j color:#000000"><color:#000000"> b.length)
color:#008080">24 color:#000000"> result[kcolor:#000000">++color:#000000">] color:#000000">=color:#000000"> b[jcolor:#000000">++color:#000000">];
color:#008080">25 color:#000000">
color:#008080">26 color:#000000"> color:#0000ff">returncolor:#000000"> result;
color:#008080">27 color:#000000"> }
color:#008080">28 color:#000000"> color:#0000ff">elsecolor:#000000">
color:#008080">29 color:#000000"> {
color:#008080">30 color:#000000"> System.out.print(color:#000000">"color:#000000">非有序数组c;不可排序!color:#000000">"color:#000000">);
color:#008080">31 color:#000000"> color:#0000ff">returncolor:#000000"> color:#0000ff">class="tags" href="/tags/NULL.html" title=null>nullcolor:#000000">;
color:#008080">32 color:#000000"> }
color:#008080">33 color:#000000"> }
color:#008080">34 color:#000000">
color:#008080">35 color:#000000"> color:#008000">//color:#008000">检查数组是否是顺序class="tags" href="/tags/CunChu.html" title=存储>存储的color:#008000">
color:#008080">36 color:#008000">color:#000000"> color:#0000ff">publiccolor:#000000"> color:#0000ff">staticcolor:#000000"> color:#0000ff">booleancolor:#000000"> checkSort(color:#0000ff">intcolor:#000000"> a[])
color:#008080">37 color:#000000"> {
color:#008080">38 color:#000000"> color:#0000ff">booleancolor:#000000"> change color:#000000">=color:#000000"> color:#0000ff">truecolor:#000000">; color:#008000">//color:#008000">这个标志位是一种class="tags" href="/tags/YouHua.html" title=优化>优化程序的方法c;可以看看我写的冒泡排序class="tags" href="/tags/YouHua.html" title=优化>优化就会明白了color:#008000">
color:#008080">39 color:#008000">color:#000000"> color:#0000ff">forcolor:#000000">(color:#0000ff">intcolor:#000000"> icolor:#000000">=color:#000000">0color:#000000">; icolor:#000000"><color:#000000">a.lengthcolor:#000000">-color:#000000">1color:#000000"> color:#000000">&&color:#000000"> change; icolor:#000000">++color:#000000">)
color:#008080">40 color:#000000"> {
color:#008080">41 color:#000000"> color:#0000ff">forcolor:#000000">(color:#0000ff">intcolor:#000000"> jcolor:#000000">=color:#000000">icolor:#000000">+color:#000000">1color:#000000">; jcolor:#000000"><color:#000000">a.length; jcolor:#000000">++color:#000000">)
color:#008080">42 color:#000000"> color:#0000ff">ifcolor:#000000">(a[jcolor:#000000">-color:#000000">1color:#000000">] color:#000000">>color:#000000"> a[j])
color:#008080">43 color:#000000"> color:#0000ff">returncolor:#000000"> color:#0000ff">falsecolor:#000000">;
color:#008080">44 color:#000000"> color:#0000ff">elsecolor:#000000"> change color:#000000">=color:#000000"> color:#0000ff">falsecolor:#000000">;
color:#008080">45 color:#000000"> }
color:#008080">46 color:#000000"> color:#0000ff">returncolor:#000000"> color:#0000ff">truecolor:#000000">;
color:#008080">47 color:#000000"> }
color:#008080">48 color:#000000">
color:#008080">49 color:#000000"> color:#008000">//color:#008000"> 打印函数color:#008000">
color:#008080">50 color:#008000">color:#000000"> color:#0000ff">publiccolor:#000000"> color:#0000ff">staticcolor:#000000"> color:#0000ff">voidcolor:#000000"> print(color:#0000ff">intcolor:#000000"> b[])
color:#008080">51 color:#000000"> {
color:#008080">52 color:#000000"> color:#0000ff">forcolor:#000000">(color:#0000ff">intcolor:#000000"> icolor:#000000">=color:#000000">0color:#000000">; icolor:#000000"><color:#000000">b.length ; icolor:#000000">++color:#000000">)
color:#008080">53 color:#000000"> {
color:#008080">54 color:#000000"> System.out.print(b[i] color:#000000">+color:#000000"> (icolor:#000000">%color:#000000">10color:#000000"> color:#000000">==color:#000000">9color:#000000"> color:#000000">?color:#000000"> color:#000000">"color:#000000">\ncolor:#000000">"color:#000000">:color:#000000">"color:#000000">\tcolor:#000000">"color:#000000">));
color:#008080">55 color:#000000"> }
color:#008080">56 color:#000000"> }
color:#008080">57 color:#000000">
color:#008080">58 color:#000000"> color:#0000ff">publiccolor:#000000"> color:#0000ff">staticcolor:#000000"> color:#0000ff">voidcolor:#000000"> main(String args[])
color:#008080">59 color:#000000"> {
color:#008080">60 color:#000000"> color:#0000ff">intcolor:#000000"> a[]color:#000000">=color:#000000">{color:#000000">1color:#000000">,color:#000000">2color:#000000">,color:#000000">2color:#000000">,color:#000000">3color:#000000">,color:#000000">5color:#000000">,color:#000000">6color:#000000">,color:#000000">7color:#000000">,color:#000000">7color:#000000">};
color:#008080">61 color:#000000"> color:#0000ff">intcolor:#000000"> b[]color:#000000">=color:#000000">{color:#000000">1color:#000000">,color:#000000">2color:#000000">,color:#000000">4color:#000000">,color:#000000">5color:#000000">,color:#000000">8color:#000000">,color:#000000">8color:#000000">,color:#000000">9color:#000000">,color:#000000">10color:#000000">,color:#000000">11color:#000000">,color:#000000">12color:#000000">,color:#000000">12color:#000000">,color:#000000">13color:#000000">,color:#000000">14color:#000000">};
color:#008080">62 color:#000000"> color:#0000ff">intcolor:#000000"> c[]color:#000000">=color:#000000"> MergeList(a,b);
color:#008080">63 color:#000000"> color:#0000ff">ifcolor:#000000">(ccolor:#000000">!=color:#0000ff">class="tags" href="/tags/NULL.html" title=null>nullcolor:#000000">)
color:#008080">64 color:#000000"> print(c);
color:#008080">65 color:#000000"> color:#0000ff">elsecolor:#000000">
color:#008080">66 color:#000000"> System.out.println(color:#000000">""color:#000000">);
color:#008080">67 color:#000000"> }
color:#008080">68 color:#000000">}