`
tingjia_2009
  • 浏览: 15179 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

对象排序简单小例子

阅读更多
public class ObjectSort {
Person[] persons = null;
int max =0;
int count = 0;



public ObjectSort(int max) {
this.persons = new Person[max];
this.max = max;
}

public void insertPerson(Person person){
if(count<max){
persons[count] = person;
count++;
}
}

public void insertSort(){
//使用插入排序
for(int i=1;i<count;i++){
Person temp = persons[i];
int index = i;
while(index-1>=0&&temp.getLastName().compareTo(persons[index-1].getLastName())<0){
persons[index] = persons[index-1];
index--;
}
persons[index] = temp;
}

}
public void bubbleSort(){
//冒泡
for(int i=count;i>0;i--){
for(int j=0;j<i-1;j++){
if(this.compareMAX(persons[j], persons[j+1])){
wrap(j,j+1);
}
}
}
}

public void selectSort(){
int min;
for(int i=0;i<count-1;i++){
min = i;
for(int j=i+1;j<count;j++){
if(this.compareMIN(persons[j], persons[min])){
min = j;
}
}
wrap(i,min);
}
}
// one>aim
private boolean compareMAX(Person one,Person aimOne){
return one.getLastName().compareTo(aimOne.getLastName())>0;
}
// one<aim
private boolean compareMIN(Person one,Person aimOne){
return one.getLastName().compareTo(aimOne.getLastName())<0;
}
private void wrap(int i,int j){
Person temp = persons[j];
persons[j] = persons[i];
persons[i] = temp;

}
public void displayPerson(){
for(int i=0;i<count;i++){
System.out.println(persons[i]);
}
}

public static void main(String[] args){
ObjectSort obj = new ObjectSort(5);
obj.insertPerson(new Person("1","D"));
obj.insertPerson(new Person("2","B"));
obj.insertPerson(new Person("3","A"));
obj.insertPerson(new Person("4","C"));
obj.insertPerson(new Person("5","E"));
obj.insertPerson(new Person("6","F"));
System.out.println("======原始===========");
obj.displayPerson();
System.out.println("======插入===========");
obj.insertSort();
obj.displayPerson();
System.out.println("======冒泡===========");
obj.bubbleSort();
obj.displayPerson();
System.out.println("=======选择==========");
obj.selectSort();
obj.displayPerson();
}
}
class Person{
private String firstName;
private String lastName;

public Person(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String toString(){
return this.lastName+"\t"+this.firstName;
}

}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    VS2008--利用委托给对象排序.rar

    在这个特定的教程“VS2008--利用委托给对象排序.rar”中,我们将探讨如何在C#编程中使用委托来实现对象的排序。委托在.NET中扮演着类似函数指针的角色,允许我们传递方法作为参数,从而实现更灵活的代码设计。 委托...

    List对象集合的排序:比较器Comparator(简单例子)

    当需要对`List`中的对象进行自定义排序时,`Comparator`接口就派上了用场。`Comparator`是一个可以比较两个对象的类,它提供了一种方式来定义自定义的比较规则,从而实现灵活的排序逻辑。 `Comparator`接口位于`...

    (java)类排序小例子

    在Java编程语言中,排序是数据处理中非常常见的任务...这只是Java排序的一个简单示例,实际应用中可能涉及更复杂的排序逻辑,例如多字段排序或自定义排序规则。了解这些基本概念后,你就可以灵活地处理各种排序需求了。

    表格排序的例子

    - **冒泡排序**:简单但效率较低,适合小规模数据排序。 - **选择排序**:每次找到未排序部分的最大(或最小)值,然后与未排序部分的第一个值交换。 - **插入排序**:将未排序的元素依次插入到已排序的部分。 -...

    java排序例子

    1. **冒泡排序**:这是一种简单的排序算法,通过重复遍历待排序的元素列表,交换相邻位置上顺序错误的元素。虽然效率较低,但对于小规模数据排序,它仍然是一种有效的解决方案。`SortDemo.java`中可能会包含一个冒泡...

    [线程技术]排序对象

    本示例代码提供了一个简单的线程安全的排序方法,适用于数组中的对象。我们来详细解析一下这段代码及其涉及的知识点。 首先,`SortObjects` 类是一个用于对对象数组进行排序的工具类。它没有实例化,所有的方法都是...

    数据结构(c#版)各种排序算法例子

    在这个“数据结构(C#版)各种排序算法例子”中,我们将深入探讨几种经典的排序算法,包括插入排序、带哨兵的插入排序、希尔排序、选择排序和冒泡排序。 1. 插入排序:插入排序是一种简单直观的排序算法,它的工作...

    Criteria标准化对象查询小例子

    这个“Criteria标准化对象查询小例子”提供了一个实际应用Criteria API的示例,帮助开发者理解如何利用它来执行复杂的数据库查询。下面将详细解释Criteria API的核心概念和用法。 Criteria API的主要优势在于它允许...

    关于排序算法 动态实现的例子

    1. **冒泡排序**:是最简单的排序算法之一,通过不断交换相邻的不正确顺序元素来逐步排序。在VB中,可以使用嵌套循环来实现冒泡排序,外层循环控制排序的轮数,内层循环则负责比较和交换元素。 2. **选择排序**:在...

    易语言希尔排序源码 JS调用例子

    希尔排序的时间复杂度在最坏情况下为O(n^2),但在实际应用中,由于其分组和插入排序的特性,通常表现得比简单插入排序快很多。 在易语言中实现希尔排序,我们需要理解易语言的基本语法和数据结构。易语言是一种中国...

    abc排序_ABC排序_

    ABC排序是一种简单的排序算法,主要用于教学目的,尤其适合初学者理解排序的基本原理。在这个场景中,我们关注的是用...对于初学者来说,理解并实现ABC排序这样的简单例子,有助于建立基本的编程思维和问题解决能力。

    Flex中如何创建自定义排序DataGrid控件的例子

    以下是一个简单的自定义排序类实现: ```as public class CustomSort implements IMaskedSort { private var _sortField:String; public function CustomSort(sortField:String) { _sortField = sortField; } ...

    简单排序算法--类的简单使用

    在这个例子中,可能会有一个类`SortAlgorithms`包含各种排序算法的成员函数,如冒泡排序、选择排序、插入排序、快速排序等。另一个类`UserInterface`则负责处理用户交互和控制执行哪种排序算法。 3. **排序算法的...

    SSH2的jar包及的一个简单增删改查及分页和排序的例子

    在这个例子中,我们关注的是使用SSH2进行Java开发的相关内容,特别是通过jar包实现的简单数据库操作,包括增删改查、分页和排序。 SSH2在Java开发中的应用通常指的是Spring、Struts2和Hibernate这三个框架的组合,...

    这是一个表格脚本排序的例子

    这个例子提供了6种不同的方法来实现这一功能,对于理解并掌握如何在各种场景下进行数据排序大有裨益。下面,我们将深入探讨这6种表格脚本排序的方式,并分析它们的适用场景和优缺点。 1. **JavaScript原生排序**: ...

    Python 实用小例子

    小例子可能会涉及列表推导式、排序、去重等技巧。 5. **文件操作**:读写文件是程序中常见的任务,Python提供了简单易用的文件操作API。例子可能包括读取文本文件、写入数据、追加内容等。 6. **模块和库的使用**...

    List中保存对象,按对象中某一属性排序【含程序源码】

    在编程领域,特别是Java开发中,我们经常需要处理列表(List)数据,并且有时需要根据对象中的某个属性对这些对象进行排序。这篇博客“List中保存对象,按对象中某一属性排序【含程序源码】”提供了这样的解决方案。...

    python 100个小例子

    在这些小例子中,你可能看到如何编写简单的GET和POST请求,如何解析网页抓取特定信息,甚至如何处理登录和反爬虫策略。这些技能在数据获取和Web信息挖掘中至关重要。 除此之外,压缩包中的小例子可能还涉及Python的...

    JavaScript对象数组如何按指定属性和排序方向进行排序

    在这个例子中,`propOrders`对象定义了排序的属性和顺序。`multiSort`函数遍历每个属性,根据其排序顺序调整比较结果,然后根据比较结果决定两个对象的相对顺序。如果所有属性都相同,就返回0,保持原始顺序。 需要...

    61丨策略模式(下):如何实现一个支持给不同大小文件排序的小程序?1

    在这个例子中,我们将讨论如何使用策略模式来实现一个支持对不同大小文件排序的小程序。这个程序需要处理从小到大,从几百MB到几TB的文件,因此需要采用不同的排序策略。 首先,对于较小的文件,我们可以直接将文件...

Global site tag (gtag.js) - Google Analytics