Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

? 發問時間: 電腦與網際網路程式設計 · 1 0 年前

p和q分別指向二個由小到大排列的線性串列(JAVA)

我是轉學生

我之前所學的跟現在的學校教的不一樣

所以請各位好心的大大救救我><

p和q分別指向二個由小到大排列的線性串列

a.試撰寫一個程式將它們合併成一個由小到大排序的串列

b.承上題,合併成一個由大到小的串列

已更新項目:

"岔題與亂回文程度的能力" 這位大大

如果沒有意願要回答

就請不要在"意見"裡批評他人的回答

這樣對其他人很沒禮貌

還有如果我會的話我就不會上網發問

畢竟我是從中間開始學起

還沒開始重修基本

(我是轉學生)

請搞清楚狀況在留言好嗎?

意見是用來提供幫助人的方法或管道

不是用來自以為是的嗆人的

4 個解答

評分
  • SAYC
    Lv 5
    1 0 年前
    最佳解答

    public class CompileTwoAarrays {

    public static void main (String[]args){

    int [] a1= new int[]{1,3,5,7,9};

    int [] a2= new int[]{2,4,6,8,10,12,14,16};

    int []result = ascsortArray(a1,a2);

    for(int i=0;i<result.length;i++){

    System.out.print(result[i]+",");

    }

    result=descSortArray(a1,a2);

    System.out.print("\n");

    for(int i=0;i<result.length;i++){

    System.out.print(result[i]+",");

    }

    }

    private static void SortData(int[] ary) {

    int temp=0;

    for(int j=0;j<ary.length;j++){

    for(int i=0;i<ary.length-1;i++){

    temp=ary[i];

    if(temp>ary[i+1]){

    ary[i]=ary[i+1];

    ary[i+1]=temp;

    j=i;

    break;

    }

    }

    }

    }

    private static void sortDataForDesc(int[] ary) {

    int temp=0;

    for(int j=0;j<ary.length;j++){

    for(int i=0;i<ary.length-1;i++){

    temp=ary[i];

    if(temp<ary[i+1]){

    ary[i]=ary[i+1];

    ary[i+1]=temp;

    j=i;

    break;

    }

    }

    }

    }

    public static int[] ascsortArray(int[] a1,int[]a2){

    int[] result=combineArray(a1,a2);

    SortData(result);

    return result;

    }

    public static int[] combineArray(int[] a1,int[]a2){

    int [] result= new int [a1.length+a2.length];

    int j=0;

    for(int i=0;i<result.length;i++){

    if(i<a1.length){

    result[i]= a1[i];

    }else{

    result[i]= a2[j];

    j++;

    }

    }

    return result;

    }

    public static int[] descSortArray(int[] a1,int[]a2){

    int[] result=combineArray(a1,a2);

    sortDataForDesc(result);

    return result;

    }

    }

    2010-11-23 11:10:34 補充:

    If you are so excellent, please post your answer for us! Stop complaining and do nothing for Yahoo Knowledge+.

  • 爵士
    Lv 5
    1 0 年前

    非常同意 SAYC 的意見

  • ?
    Lv 4
    1 0 年前

    2個回答都0分..

    唉..程度就這樣?

    不懂老師要求的答案嗎?

    2010-11-23 17:56:27 補充:

    很簡單~我不幫學生做作業, 要做~就收錢

    (時薪300就好~打過折了.)

    但我只站在老師的角度跟你們說, 用sort的都0分.

    原發問者不信就把答案call回去給老師吧.

    (當然有寫的話也有可能給60分啦....)

    2010-11-23 18:02:47 補充:

    當然如果有人願意以"非求作業答案"的角度再把這題發問一次,

    我不會排除回答啦...

  • Mike
    Lv 5
    1 0 年前

    public class Test {

    public static void main(String[] args) throws Exception {

    int[] p = { 1, 3, 5, 7, 9 };

    int[] q = { 2, 4, 6, 8, 10 };

    int[] a = mergeAndSort(p, q);

    show(a);

    int[] b = mergeAndReverseSort(p, q);

    show(b);

    }

    public static int[] mergeAndSort(int[] a, int[] b) {

    int[] merged = new int[a.length + b.length];

    System.arraycopy(a, 0, merged, 0, a.length);

    System.arraycopy(b, 0, merged, a.length, b.length);

    Arrays.sort(merged);

    return merged;

    }

    public static int[] mergeAndReverseSort(int[] a, int[] b) {

    int[] merged = mergeAndSort(a, b);

    for (int i = 0, j = merged.length - 1; i < j; i++, j--) {

    int n = merged[i];

    merged[i] = merged[j];

    merged[j] = n;

    }

    return merged;

    }

    public static void show(int[] a) {

    for (int n : a) {

    System.out.print(n + " ");

    }

    System.out.println();

    }

    }

還有問題?馬上發問,尋求解答。