作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在将排序类转换为使用数组列表对对象进行排序时遇到问题。它当前正在对对象进行排序,但我在将其转换为对数组列表进行排序时遇到问题。这是代码:
package Merge_Sort_Objects_ArrayList;
import java.util.ArrayList;
public class mergesort {
/**
* Merges two sorted portion of items array
* pre: items[start.mid] is sorted. items[mid+1.end] sorted. start <= mid <= end
* post: items[start.end] is sorted
*/
private static void merge(ArrayList <Comparable> items, int start, int mid, int end){
Comparable temp;
int pos1 = start;
int pos2 = mid + 1;
int spot = start;
ArrayList <Comparable> objectSort = items;
while (!(pos1 > mid && pos2 > end)){
if ((pos1 > mid) || ((pos2 <= end) &&(items[pos2].getRadius() < items[pos1].getRadius()))){
temp[spot] = items[pos2];
pos2 +=1;
}else{
temp[spot] = items[pos1];
pos1 += 1;
}
spot += 1;
}
/* copy values from temp back to items */
for (int i = start; i <= end; i++){
items[i] = temp[i];
}
}
/**
* mergesort items[start..end]
* pre: start > 0, end > 0
* post: items[start..end] is sorted low to high
*/
public static void mergesort(ArrayList <Comparable> items, int start, int end){
if (start < end){
int mid = (start + end) / 2;
mergesort(items, start, mid);
mergesort(items, mid + 1, end);
merge(items, start, mid, end);
}
}
}
现在我已经开始转换它,但是我被困在这一部分:
while (!(pos1 > mid && pos2 > end)){
if ((pos1 > mid) || ((pos2 <= end) &&(items[pos2].getRadius() < items[pos1].getRadius()))){
temp[spot] = items[pos2];
pos2 +=1;
}else{
temp[spot] = items[pos1];
pos1 += 1;
}
spot += 1;
}
/* copy values from temp back to items */
for (int i = start; i <= end; i++){
items[i] = temp[i];
}
提前谢谢您!
最佳答案
使用这样的事实
Foo[] array = ......;
Foo rhs = .....;
Foo lhs;
array[i] = rhs;
lhs = array[j];
类似于:
ArrayList<Foo> list = .....;
Foo rhs = ......;
Foo lhs;
list.set(i, rhs);
lhs = list.get(i);
关于java - 使用归并排序对数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10827051/
本文实例汇总了Java各种排序算法。分享给大家供大家参考,具体如下: 1. 冒泡排序: ?
1.冒泡排序 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 算法步
前言 平时用惯了高级语言高级工具高级算法,难免对一些基础算法感到生疏。但最基础的排序算法中实则蕴含着相当丰富的优化思维,熟练运用可起到举一反三之功效。 选择排序 选择排序几乎是
我是一名优秀的程序员,十分优秀!