数组排序与搜索算法详解
1. 对象数组排序
在处理排序问题时,待排序的数据项不仅可以是整数或双精度浮点数等基本数据类型,还可以是对象。对于对象数组的排序,关键在于理解我们要排序的是对象本身,而非数组元素,数组元素仅仅是对象的引用或对象的内存位置。
对象数组的排序是通过排序键来实现的,排序键是对象的一个或多个实例变量。例如,对于电子邮件对象,可以按接收日期、发件人、主题等进行排序。在排序对象时,必须保证对象的完整性。比如,按发件人对电子邮件对象集合进行排序时,我们排序的是电子邮件对象集合,而不是发件人集合。
下面以 Auto 对象的 cars 数组为例,使用插入排序算法进行排序。我们需要确定 Auto 对象的哪个字段(或哪些字段)来决定对象的顺序。假设以 model 作为排序字段,那么比较语句将比较两个对象的 model ,即两个字符串。 String 类的 compareTo 方法用于比较两个字符串的值,如果调用该方法的字符串大于作为参数传递的字符串,则返回一个正数。
以下是修改后的插入排序代码:
/* * Insertion sorts an array of Autos
* @param arr an array of Autos
*/
public static void insertionSort( Auto [ ] arr )
{
Auto temp;
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



