Results 1 to 15 of 15
Thread: Non conventional Sorting HELP!
- 01-02-2012, 09:39 PM #1
Member
- Join Date
- Jan 2012
- Posts
- 7
- Rep Power
- 0
Non conventional Sorting HELP!
I'm pretty new to Java and need some help with a project.
For this project, I need to sort an ArrayList of numbers, but not in the usual convention.
Example:
Here is the set of random numbers: <1,12,53,3,5,10,9,6>
I need the program to sort it like this: <1,12,3,53,5,10,6,9>
So, I need it to sort Low, High, Low High, etc...
I was initially going to use a merge sort, but couldn't figure out how to do that.
Then I thought maybe just doing something simple like if(a.get(i) < a.get(i+1)) then keep a.get(i) in its place. However if a.get(i) is greater that i+1, then I would have it swap.
I just need help swapping the values.
In any case, here is my current code:
import java.util.*;
public class JollySort
{
public static void main(String[] args)
{
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(1);
numbers.add(5);
numbers.add(18);
numbers.add(2);
numbers.add(12);
numbers.add(10);
numbers.add(8);
numbers.add(7);
numbers.add(14);
numbers.add(32);
numbers.add(9);
numbers.add(4);
numbers.add(5);
numbers.add(19);
numbers.add(15);
numbers.add(65);
numbers.add(8);
numbers.add(41);
numbers.add(6);
numbers.add(13);
for(int i = 0; i < numbers.size(); i++)
{
if(numbers.get(i) < numbers.get(i+1))
i = i;
else
numbers.get(i+1).add(i);
}
}
}
- 01-02-2012, 09:41 PM #2
Re: Non conventional Sorting HELP!
Have you tried using a temp variable to hold one value while you move the other value into its slot?I just need help swapping the values.
- 01-02-2012, 09:43 PM #3
Member
- Join Date
- Jan 2012
- Posts
- 7
- Rep Power
- 0
Re: Non conventional Sorting HELP!
No, but I will try that now and let you know how that goes.
- 01-02-2012, 09:51 PM #4
Member
- Join Date
- Jan 2012
- Posts
- 7
- Rep Power
- 0
Re: Non conventional Sorting HELP!
Ok, so this is what I did, but I get an error. Maybe you can check it out for me and let me know what I am doing wrong.
import java.util.*;
public class JollySort
{
public static void main(String[] args)
{
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(1);
numbers.add(5);
numbers.add(18);
numbers.add(2);
numbers.add(12);
numbers.add(10);
numbers.add(8);
numbers.add(7);
numbers.add(14);
numbers.add(32);
numbers.add(9);
numbers.add(4);
numbers.add(5);
numbers.add(19);
numbers.add(15);
numbers.add(65);
numbers.add(8);
numbers.add(41);
numbers.add(6);
numbers.add(13);
int j = 0;
for(int i = 0; i < numbers.size(); i++)
{
if(numbers.get(i) < numbers.get(i+1))
i = i;
else if (numbers.get(i) > numbers.get(i+1))
{
j = numbers.get(i);
numbers.remove(i);
numbers.add(i+1, j);
}
}
}
}
- 01-02-2012, 10:00 PM #5
Re: Non conventional Sorting HELP!
Please copy and paste the full text of the error message here.I get an error.
- 01-02-2012, 10:04 PM #6
Member
- Join Date
- Jan 2012
- Posts
- 7
- Rep Power
- 0
Re: Non conventional Sorting HELP!
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 20, Size: 20
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at JollySort.main(JollySort.java:32)
- 01-02-2012, 10:22 PM #7
Member
- Join Date
- Jan 2012
- Posts
- 7
- Rep Power
- 0
- 01-02-2012, 10:24 PM #8
Re: Non conventional Sorting HELP!
You have an index to an array that is Out Of Bounds/past the end of the array.IndexOutOfBoundsException: Index: 20, Size: 20
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at JollySort.main(JollySort.java:32)
Look at line 32 and see what is the value of the index you are using there. Is its value past the end of the array?
Remember that indexes for arrays go from 0 to the array's length-1
If the array has 20 elements, the largest index is 19.
- 01-02-2012, 10:39 PM #9
Member
- Join Date
- Jan 2012
- Posts
- 7
- Rep Power
- 0
- 01-02-2012, 10:42 PM #10
Re: Non conventional Sorting HELP!
I guess not letting the loop control value increase was not the answer.
What other ways do you have for keeping the index from going past the end of the array?
What about the terminating expression in the for statement?
- 01-02-2012, 10:45 PM #11
Member
- Join Date
- Jan 2012
- Posts
- 7
- Rep Power
- 0
- 01-02-2012, 10:48 PM #12
Re: Non conventional Sorting HELP!
If you don't know how a for statement works, here's a link where you can read about it:I honestly have no idea.
The for Statement (The Java™ Tutorials > Learning the Java Language > Language Basics)
You never posted the statement where the error occured. Have you looked at that statement to see why/how the index goes past the end of the array?
- 01-03-2012, 01:11 AM #13
Senior Member
- Join Date
- Mar 2011
- Posts
- 171
- Rep Power
- 0
Re: Non conventional Sorting HELP!
It might be easier for you to create a linked list or a binary search tree for sorting
- 01-03-2012, 01:32 AM #14
Re: Non conventional Sorting HELP!
@adjit - Did you look at the sorting rules?
- 01-03-2012, 04:58 AM #15
Senior Member
- Join Date
- Mar 2011
- Posts
- 171
- Rep Power
- 0
Re: Non conventional Sorting HELP!
@norm - yes I did, so what I was thinking was maybe a binary search tree, only using the lower half and then just putting them into the array list one after the other and then just throwing the other numbers in the order that they were added into the 'blank' spaces
Similar Threads
-
Sorting by Last Name
By burrish in forum New To JavaReplies: 4Last Post: 10-15-2011, 05:39 PM -
Sorting
By amzers in forum NetBeansReplies: 1Last Post: 10-04-2011, 06:06 PM -
little help with sorting
By drgnfire25 in forum New To JavaReplies: 3Last Post: 01-15-2011, 09:23 PM -
Help in sorting
By nn12 in forum New To JavaReplies: 3Last Post: 01-08-2011, 06:15 PM -
sorting
By jot321 in forum New To JavaReplies: 18Last Post: 10-02-2008, 10:30 AM


LinkBack URL
About LinkBacks
Reply With Quote

Bookmarks