Привет! Я использую следующий алгоритм сортировки вставок и хочу записать сравниваемые элементы.В основном я хочу, чтобы сравнения были сохранены в двух списках массивов, arrList1 и arrList2.Если элемент находится на своем правильном месте, то оба списка массивов будут иметь один и тот же элемент.Если его нет, то arrList1 будет иметь выбранный элемент, а arrayList2 будет иметь элемент, с которым он сравнивает себя.В настоящее время я изо всех сил пытаюсь сделать это, поэтому мне было интересно, если кто-нибудь может помочь?Спасибо
public static ArrayList<Integer> arrList1 = new ArrayList<Integer>();
public static ArrayList<Integer> arrList2 = new ArrayList<Integer>();
...
public static void insertSort(int[] A){
for(int i = 1; i < A.length; i++){
int value = A[i];
int j = i - 1;
while(j >= 0 && A[j] > value){
A[j + 1] = A[j];
j = j - 1;
}
A[j + 1] = value;
}
}
РЕДАКТИРОВАТЬ: Например: если мой массив имел числа 1,3,2,4,6,5, то при сравнении, я хочу, чтобы мой список двух массивов выглядел:
arrList1 arrList2
#1 1 1
#2 3 3
#3 2 3 (As 2 goes before 3 then it must be compared to 3)
#4 4 4
#5 6 6
#6 5 6 (As 5 is lower then 6 then it must be compared to 6)
Сортированный массив: 1, 2, 3, 4, 5, 6
Как видите, arrList1 - это в основном порядок входного массива, тогда как arrList2 - это элемент, с которым он сравнивается, еслиэто не в правильном положении.Если он в правильном положении, arrList 2 будет иметь то же значение.