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;
}
}
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;
}
}
发表评论
文章已被作者锁定,不允许评论。
-
oracle 的 sequence
2010-06-24 16:57 681-- Create sequence create sequ ... -
简单的log4j.propertier配置
2010-01-27 16:46 845简单的log4j.properties配置,不详细解释了 使用 ... -
IO操作_读取Excel
2010-01-27 16:37 835import java.io.FileInputStream; ... -
IO操作_文件读取
2010-01-27 16:25 683import java.io.BufferedReader; ... -
队列学习小例子
2010-01-06 22:44 618public class Queue { private l ... -
栈学习简单小例子
2010-01-06 22:43 864public class ArrayStrack { pri ... -
简单的排序
2009-12-29 14:59 742public class Sort { public sta ... -
简单的页面静态化
2009-12-29 14:26 641import java.io.BufferedReader; ... -
CSS基本语法(收藏)
2009-12-29 14:22 6891. 基本语法 CSS的定义是 ... -
配置weblogic.xml文件获得相关的servlet文件
2009-12-29 14:13 1800JSP的运行时,先把JSP翻译成对应的Servlet,再把Se ... -
eclipse启动参数设置
2009-12-29 13:33 1022-vm D:\Tools\JDK\jdk1.6.0_05\bi ... -
增加删除行
2009-12-29 13:25 459//被操作模板 <table id="hidd ... -
Filter学习
2009-12-29 12:29 529EncodeFilter,实现类如下 import java ... -
Js实用小技巧(摘抄)
2009-12-29 12:01 6871.document.write(""); ... -
常用的几个js小方法
2009-07-27 11:03 5631.这个是页面输入框的trim操作,很简单实用 String. ...
相关推荐
在这个特定的教程“VS2008--利用委托给对象排序.rar”中,我们将探讨如何在C#编程中使用委托来实现对象的排序。委托在.NET中扮演着类似函数指针的角色,允许我们传递方法作为参数,从而实现更灵活的代码设计。 委托...
当需要对`List`中的对象进行自定义排序时,`Comparator`接口就派上了用场。`Comparator`是一个可以比较两个对象的类,它提供了一种方式来定义自定义的比较规则,从而实现灵活的排序逻辑。 `Comparator`接口位于`...
在Java编程语言中,排序是数据处理中非常常见的任务...这只是Java排序的一个简单示例,实际应用中可能涉及更复杂的排序逻辑,例如多字段排序或自定义排序规则。了解这些基本概念后,你就可以灵活地处理各种排序需求了。
- **冒泡排序**:简单但效率较低,适合小规模数据排序。 - **选择排序**:每次找到未排序部分的最大(或最小)值,然后与未排序部分的第一个值交换。 - **插入排序**:将未排序的元素依次插入到已排序的部分。 -...
1. **冒泡排序**:这是一种简单的排序算法,通过重复遍历待排序的元素列表,交换相邻位置上顺序错误的元素。虽然效率较低,但对于小规模数据排序,它仍然是一种有效的解决方案。`SortDemo.java`中可能会包含一个冒泡...
本示例代码提供了一个简单的线程安全的排序方法,适用于数组中的对象。我们来详细解析一下这段代码及其涉及的知识点。 首先,`SortObjects` 类是一个用于对对象数组进行排序的工具类。它没有实例化,所有的方法都是...
在这个“数据结构(C#版)各种排序算法例子”中,我们将深入探讨几种经典的排序算法,包括插入排序、带哨兵的插入排序、希尔排序、选择排序和冒泡排序。 1. 插入排序:插入排序是一种简单直观的排序算法,它的工作...
这个“Criteria标准化对象查询小例子”提供了一个实际应用Criteria API的示例,帮助开发者理解如何利用它来执行复杂的数据库查询。下面将详细解释Criteria API的核心概念和用法。 Criteria API的主要优势在于它允许...
1. **冒泡排序**:是最简单的排序算法之一,通过不断交换相邻的不正确顺序元素来逐步排序。在VB中,可以使用嵌套循环来实现冒泡排序,外层循环控制排序的轮数,内层循环则负责比较和交换元素。 2. **选择排序**:在...
希尔排序的时间复杂度在最坏情况下为O(n^2),但在实际应用中,由于其分组和插入排序的特性,通常表现得比简单插入排序快很多。 在易语言中实现希尔排序,我们需要理解易语言的基本语法和数据结构。易语言是一种中国...
ABC排序是一种简单的排序算法,主要用于教学目的,尤其适合初学者理解排序的基本原理。在这个场景中,我们关注的是用...对于初学者来说,理解并实现ABC排序这样的简单例子,有助于建立基本的编程思维和问题解决能力。
以下是一个简单的自定义排序类实现: ```as public class CustomSort implements IMaskedSort { private var _sortField:String; public function CustomSort(sortField:String) { _sortField = sortField; } ...
在这个例子中,可能会有一个类`SortAlgorithms`包含各种排序算法的成员函数,如冒泡排序、选择排序、插入排序、快速排序等。另一个类`UserInterface`则负责处理用户交互和控制执行哪种排序算法。 3. **排序算法的...
在这个例子中,我们关注的是使用SSH2进行Java开发的相关内容,特别是通过jar包实现的简单数据库操作,包括增删改查、分页和排序。 SSH2在Java开发中的应用通常指的是Spring、Struts2和Hibernate这三个框架的组合,...
这个例子提供了6种不同的方法来实现这一功能,对于理解并掌握如何在各种场景下进行数据排序大有裨益。下面,我们将深入探讨这6种表格脚本排序的方式,并分析它们的适用场景和优缺点。 1. **JavaScript原生排序**: ...
小例子可能会涉及列表推导式、排序、去重等技巧。 5. **文件操作**:读写文件是程序中常见的任务,Python提供了简单易用的文件操作API。例子可能包括读取文本文件、写入数据、追加内容等。 6. **模块和库的使用**...
在编程领域,特别是Java开发中,我们经常需要处理列表(List)数据,并且有时需要根据对象中的某个属性对这些对象进行排序。这篇博客“List中保存对象,按对象中某一属性排序【含程序源码】”提供了这样的解决方案。...
在这些小例子中,你可能看到如何编写简单的GET和POST请求,如何解析网页抓取特定信息,甚至如何处理登录和反爬虫策略。这些技能在数据获取和Web信息挖掘中至关重要。 除此之外,压缩包中的小例子可能还涉及Python的...
在这个例子中,`propOrders`对象定义了排序的属性和顺序。`multiSort`函数遍历每个属性,根据其排序顺序调整比较结果,然后根据比较结果决定两个对象的相对顺序。如果所有属性都相同,就返回0,保持原始顺序。 需要...
在这个例子中,我们将讨论如何使用策略模式来实现一个支持对不同大小文件排序的小程序。这个程序需要处理从小到大,从几百MB到几TB的文件,因此需要采用不同的排序策略。 首先,对于较小的文件,我们可以直接将文件...