Solved

# Bubble sort

Posted on 2004-09-24
331 Views
I have a question.  Does the bubble sort algorithm always guarantee a perfect sort everytime?  Or do I have a bug in my prog?

Date d1,d2;
for(int i = 0; i < d.size()-1; i++)
for(int j = i; i < d.size()-1; i++)
if( ( d.elementAt(j).getDt() ).before(d.elementAt(i).getDt()))
d.setElementAt(d.elementAt(j),i);
0
Question by:JK2429
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 8

LVL 14

Accepted Solution

sudhakar_koundinya earned 50 total points
ID: 12146156
0

LVL 14

Expert Comment

ID: 12146183
public int [] bubbleSort(int array[])
{
boolean ok=false;
for(int i=0;i<array.length;i++)
{
ok=false;
for(int j=0;j<array.length-1;j++)
{
if(array[j]<array[j+1])
{
ok=true;
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
if(!ok)break;
}
return array;
}
0

LVL 14

Expert Comment

ID: 12146247
public List  bubbleSort(List array)
{
boolean ok=false;
for(int i=0;i<array.size();i++)
{
ok=false;
for(int j=0;j<array.size()-1;j++)
{
if( ( d.elementAt(j).getDt() ).before(d.elementAt(j+1).getDt()))

{
ok=true;
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
if(!ok)break;
}
return array;
}
0

LVL 14

Expert Comment

ID: 12146264
0

LVL 14

Expert Comment

ID: 12146285
>> if( ( d.elementAt(j).getDt() ).before(d.elementAt(j+1).getDt()))

should be

if( ( array.elementAt(j).getDt() ).before(array.elementAt(j+1).getDt()))
0

LVL 14

Expert Comment

ID: 12146310
0

LVL 14

Expert Comment

ID: 12146321
A vector Implementation here

// simple bubble sort.
for (int j=myDateVector.size()-1;j>=1;j--) {
for (int i=0;i<j;i++) {
Date d1=(Date) myDateVector.elementAt(i);
Date d2=(Date) myDateVector.elementAt(i+1);

if (d2.getTime()<d1.getTime()) {
myDateVector.setElementAt(d2, i);
myDateVector.setElementAt(d1, i+1);
}
}
}
0

LVL 14

Expert Comment

ID: 12146516
Or some thing like this

/*
* DateComparision.java
*
* Created on September 25, 2004, 12:24 AM
*/
import java.util.*;
/**
*
* @author  Sudhakar
*/
public class DateComparision {

/** Creates a new instance of DateComparision */
public DateComparision() {
Date d=new Date();
Date d1=new Date();
Vector vect=new Vector();
Object[] array=vect.toArray();
Arrays.sort(array, new DateComparator());
}

}

class DateComparator implements Comparator
{

public int compare(Object o1, Object o2) {
Date d1=(Date)o1;
Date d2=(Date)o2;
if(d1.before(d2))
{
return -1;
}
else if(d1.equals(d2))
{
return 0;
}
else
{
return 1;
}

}

}
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Java had always been an easily readable and understandable language.  Some relatively recent changes in the language seem to be changing this pretty fast, and anyone that had not seen any Java code for the last 5 years will possibly have issues unde…
Are you developing a Java application and want to create Excel Spreadsheets? You have come to the right place, this article will describe how you can create Excel Spreadsheets from a Java Application. For the purposes of this article, I will be u…
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
###### Suggested Courses
Course of the Month7 days, 23 hours left to enroll