다음은 서로 다른 크기의 여러 배열에 삽입하는 insertionSort 메서드를 호출하는 주된 메서드입니다. 이 예제에는 하나의 배열 만 있지만 여러 개가 실행됩니다. arr2를 삽입 정렬처럼 정렬하는 방법을 알 수는 없습니다. arr2의 끝에서 시작하여 arr2의 올바른 위치에 도달 할 때까지 정렬되지 않은 배열을 다시보고 arr2의 끝에 다음 숫자를 놓고 정렬 될 때까지 반복해서 정렬합니다. 이걸로 나를 도울 수 있다면 좋을거야. 그리고 네, 다른 코드를 살펴 봤지만 아무도 저의 문제를 도와주지 못했습니다. 저는 이것을 알아 내려고 일주일을 보냈습니다. 첫째 arr2
수 결코 == sorted
에서Java 삽입 정렬
static void insertionSort(int[] arr) {
final long startTime = System.nanoTime(); // starts timer
System.out.println("Insertion Sort");
//************** Code For Sorting *****************//
int[] sorted = Arrays.copyOf(arr, arr.length); // Copies unsorted array to new array
Arrays.sort(sorted); // sorts unsorted array for compairison later on
int[] arr2 = new int[arr.length];
for(int h = 0; h < arr.length - 1; h++){// makes arr2 all 0's
arr2[h] = 0;
}
arr2[arr2.length - 1] = arr[0];
for(int k = 0; k < arr.length; k++){
System.out.print(arr2[k] + ", ");
}
System.out.println();
while(arr2 != sorted){
for(int i = 1; i < arr2.length; i++){
if(arr[i] < arr2[arr2.length-1]){
int last = arr2[arr2.length-1];
int before = arr[i];
arr2[arr2.length-1]= before;
arr2[arr2.length-2]= last;
// CANT FIGURE OUT HOW TO SORT CORRECTLY
}
for(int k = 0; k < arr.length; k++){
System.out.print(arr2[k] + ", ");
}
System.out.println();
}
}
for(int k = 0; k < arr.length; k++){
System.out.print(arr2[k] + ", ");
}
}
public static void main(String[] args) {
int arr[] = {}; // Array that will be put into each sort method
//****************Multiple Arrays for testing*******************//
/* ************All Arrays Are Whole Numbers 1-100***************
arr1 = Array of size 20
*************************************************************** */
int arr1[] = {6,3,20,10,11,2,9,1,19,17,4,16,8,15,18,14,5,7,12,13}; // {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
//**************************************************************//
int arrayNumber = 1;
while(arrayNumber < 2){
if (arrayNumber == 1){
arr = arr1;
}
System.out.println("Array "+ arrayNumber +" Before Sorting");
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i] + ", ");
}
System.out.println();
//************* Array put into Methods***************//
insertionSort(arr);
//***************************************************//
arrayNumber++; // Adds 1 to arrayNumber to show next array
}
}