首页 > 解决方案 > java中的选择排序算法无法正常工作

问题描述

我无法弄清楚我在这段代码中做错了什么。这是学校的练习题。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.
     */
    }
}

标签: javaarraylistdata-structuresselection-sort

解决方案


推荐阅读