Алгоритм сортировки выбора в java не работает должным образом - PullRequest
0 голосов
/ 31 марта 2020

Мне трудно понять, что я делаю неправильно в этом коде. Это проблема практики из школы. TODO был дан нам, чтобы помочь нам решить, что нам нужно сделать для решения проблемы. Любая помощь будет оценена.

import java.util.ArrayList;
import java.util.Comparator;

public class SelectionSort<E> extends AbstractSortingStrategy<E> {

public SelectionSort(Comparator<E> cmp) { 
    super("SelectionSort", cmp); 
}

@Override
public void sortList(ArrayList<E> dataSet) {
    int n = dataSet.size(); 

    for(int i = 0; i < n - 1; i++) {
        int smallest = (int) dataSet.get(i);
        for(int j = i + 1; j < n; j++) {
            if(cmp.compare(dataSet.get(j), dataSet.get(smallest)) < 0) {
                smallest = (int) dataSet.get(j);
            }
            SortingUtils.swapListElements(dataSet, smallest, i);
        }
    }

    /* TODO ADD CODE HERE FOLLOWING PSEUDOCODE
     * 
     * Use a simple for loop to find the smallest value in the desired range
     * 
     * To compare two values in dataSet, use something like:
     *    if (cmp.compare(dataSet.get(j), dataSet.get(sm)) < 0)
     * To swap, use something like:
     *    SortingUtils.swapListElements(dataSet, sm, i); 
     *    assuming that sm and i are indexes within dataSet.
     */
    }
}
...