1
Это реализация Java слияния сортировки, написанную мной:MergeSort.java использует или небезопасные операции
import java.util.*;
public class MergeSort {
public static void main(ArrayList<Integer> L){
ArrayList<Integer> inputArr= new ArrayList<Integer>();
inputArr.add(43);
inputArr.add(32);
inputArr.add(4);
inputArr.add(523);
inputArr.add(67);
inputArr.add(45);
inputArr.add(66);
MergeSort mms=new MergeSort();
ArrayList<Integer> outputArr= new ArrayList<Integer>();
outputArr=mms.sorting(inputArr);
for (int i=0; i<outputArr.size(); i++){
System.out.print(outputArr.get(i));
System.out.print(" ");
}
}
public ArrayList<Integer> sorting(ArrayList<Integer> L){
int NumEelement = L.size()/2 + L.size()%2;
ArrayList<Integer> A = new ArrayList<Integer>();
ArrayList<Integer> B = new ArrayList<Integer>();
A = (ArrayList<Integer>) L.subList(0, NumEelement);
B = (ArrayList<Integer>) L.subList(NumEelement+1, L.size()-1);
sorting(A);
sorting(B);
ArrayList<Integer> result=merge(A,B);
return result;
}
public ArrayList merge(List<Integer> A, List<Integer> B){
int i=0;
int j=0;
ArrayList<Integer> newL = new ArrayList<Integer>();
for(int k=0;k<(A.size()+ B.size());k++){
if (A.get(i)< B.get(j)){
newL.set(k, A.get(i));
i++;
}else{
newL.set(k, B.get(j));
j++;
}
}
return newL;
}
}
Этот код соответствует политику. Однако есть две заметки: 1. MergeSort.java использует непроверенные или небезопасные операции. 2. Перекомпиляция с -Xlint: непроверенная для деталей.
Пожалуйста перекомпилировать с -Xlint: снят для деталей. Это даст вам более подробное объяснение. Если это не имеет смысла для вас, приложите сюда сообщение об ошибке. – Thilo
'merge' возвращает необработанный ArrayList, который вы назначаете' ArrayList'. –
TNT
У вас есть вопросы? –