亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在一個數組中打印數組函數?

如何在一個數組中打印數組函數?

慕的地8271018 2022-06-23 09:19:39
我正在嘗試實現合并排序、快速排序、二進制搜索和插值搜索功能。我已經弄清楚了這兩個搜索功能,我的合并排序和快速排序方法的代碼基本完成了。我認為我的打印語句有問題,因為我只想打印最終數組。當我運行代碼時,我得到它已經超出范圍的錯誤,因為每次調用該方法時,它也會重新打印該函數。我只想打印這兩種方法的最終排序數組。我只需要弄清楚如何將這兩種方法中的排序數組打印為一個顯示排序列表的數組(每個方法)。我嘗試將方法調用轉換為返回值并將它們輸入到數組中,但我不確定是否可以做到這一點。public static void merge_sort(int A[], int l, int r){ if(l < r){    int m = (l + r)/2;    merge_sort(A, l, m);    merge_sort(A, m + 1, r);    merge(A, l, m, r);  }  System.out.println("Merge sorted array:" + Arrays.toString(A));  }  public static void merge(int A[], int l, int m, int r){  int n1 = m - l + 1;  int n2 = r - m;  int L[] = new int [n1];  int R[] = new int [n2];  for(int i = 0; i < n1; i++){     L[i] = A[l + i];  }  for(int j = 0; j < n2; j++){     R[j] = A[m + 1 + j];  } int i = 0; int j = 0; int k = 1;  while(i < n1 && j < n2){     if(L[i] <= R[j]){        A[k] = L[i];        i++;     }     else{        A[k] = R[j];        j++;     }     k++;  }  while(i < n1){     A[k] = L[i];     i++;      k++;   }   while(j < n2){     A[k] = R[j];     j++;     k++;   }}  public static void quick_sort(int A[], int l, int r){ if(l < r){   int i = partition(A, l, r);   quick_sort(A, l, i - 1);   quick_sort(A, i + 1, r); } System.out.println("Quick sort of Array: " + Arrays.toString(A));   }public static int partition(int A[], int l, int r){int pivot = A[r];int i = (l - 1);for(int j = l; j < r; j++){  if(A[j] <= pivot){     i++;     int temp = A[i];     A[i] = A[j];     A[j] = temp;   } } int temp = A[i + 1]; A[i + 1] = A[r]; A[r] = temp; return i + 1;   }     // this is the methods     // below is the portion of my main that calls the two sort functions int left = 0;    int right = 14;    int size = 15;    //int[] quick = new int[15];    //int[] merge = new int[15];    quick_sort(intArray, left, right);    merge_sort(intArray, left, right);對于合并排序和快速排序方法,我希望輸出看起來像數組排序元素。
查看完整描述

1 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

不要在排序方法中打印。

讓調用者打印合并的結果。它是關于關注點分離的,即一個方法應該只關注一件事。

在這種情況下,排序方法應該只進行排序,而不是打印。打印結果超出了排序方法應該做的范圍。


查看完整回答
反對 回復 2022-06-23
  • 1 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號