java - 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.
*/
}
}
解决方案
推荐阅读
- java - api 29 的源代码没有下载?
- python - 您如何处理 REST API 服务器中的高吞吐量函数?
- java - 如何通过 DataAccessException 在 postgres 数据库上检索 SQL 错误代码?
- php - document.getElementById() 作为 PHP SQL 查询参数
- c# - 地图路线将空白空间转换为 -
- c++ - 在 sniffer.h libtins 上获取 VS C2664
- python - Python:在 Windows 操作系统中更改文件/文件夹属性
- flutter - 无法重建 StreamProvider 以更新其当前数据
- google-kubernetes-engine - 使用 GKE 工作负载标识时出现 MetadataServerException
- java - 从 Windows 10 平台上的 USB 设备读取 Java usb4java