Sort an array question
Hello I have a sort question.
I have a array like this
"105016""Testnaam 16""16""16"" 16 16 1""105017""Testnaam 17""17""17"" 17 17 2""105018""Testnaam 18""18""18"" 18 18 3""105019""Testnaam 19""19""19"" 19 19 4""105020""Testnaam 20""20""20"" 20 20 5"This 105016 is the record number with data after it "Testnaam 16""16""16"" 16 16 1"
Than there is new data "Testnaam 17""17""17"" 17 17 2" with record number 105017
This is the way it should be because it is good sorted like you can see
first. 105016
than next record 105017
than next record 105018
than next record 105019
than next record 105020
It is in the right order but it can happen that record 105017 is before 105016 because something happend.
All data is stored in an array like I said.
Is it possible to go with a loop through the array and sort it the way I want it but with the data of the record after it???
Hello I made this sorter.
But does someone have some tips if there is a better way to do it.
public class sorttest
public static void main(String[] args)
String[] data = {"2","boe","schrik","6","hoioi","b","5","test","hoi","9","doei","iets"};
int[] inar = new int[data.length/3];
String[] collected= new String [data.length];
for (int i=0;i<data.length;i+=3)
inar[i/3]=Integer.valueOf(data).intValue();
int max = inar[0];
for (int i=0;i<inar.length;i++)
if(inar[i]>max)
max=inar[i];
int col=0;
for (int i=0;i<(max+1);i++)
for (int j=0;j<inar.length;j++)
if(inar[j]==i)
String test =""+inar[j];
int cnt= Integer.valueOf(test).intValue();
String iets = ""+cnt;
for(int k=0;k<data.length;k++)
if (iets.equals(data[k]))
collected[col] = data[k]+" "+data[k+1]+" "+data[k+2];
System.out.println("DATA OUT "+collected[col]+" COL "+col);
col++;
Similar Messages
-
Sorting an array of objects and returning another variable
Hi there,
Bit stuck on this one I wonder if anyone can help..
I have an object array into which I've pushed a number of objects with different variables :-
myArray.push({myRef: 1, myValue: "W"});
I can sort the array in numerical order using :-
myArray.sortOn("myRef", Array.NUMERIC);
but after sorting I would like to collapse the array using something along the lines of :-
myArray.join("");
to join the OTHER variable (myValue)...
Is it possible to do this without pushing every instance of 'myValue' to another array and then joining that ?
Many Thanks in advance
MartinHi kglad,
I really appreciate you helping, but I have had to completely change my approach to this problem, therefore I will be marking the question as answered !!
Thanks again -
Sort algorithm: how can I sort two arrays according to one
I have two parallel arrays, similar to this:
var array1 = [4, 3, 1, 5, 2];
var array2 = ["four", "three", "one", "five", "two"];
I want to sort the first array, and have the second array follow the same sort as the first. Any advice for a good algorithm would be appreciated.
Rick QuatroHi Rick,
frameexpert wrote:
Technically, there was no correct answer because the problem could be solved in multiple ways,
I don't think you're right about not marking the question as correct just because there are multiple ways of solving it.
People search the forums for solutions and threads that are not marked as correct are somewhat relegated.
It wouldn't hurt to make bduffy232's day or even mark your own solution as correct which is more the less the same as the one on the link from KuddRoww and more the less the way I would have done it but see the difference in the results in the table at the bottom of this post.
I actually think that technically there can be multiple correct answers even though you can only one can be marked.
One other small point if you use the advance editor on the forum you can have you code formatted makes it much easier to read.
Anyway here's my half pence worth on the scripting front.
Your question was how to sort one array according to another, which I understand to mean that you want the originals arrays reordered
Yours and bduffy232's scripts do that properly the others don't. Jongware's first script is easy to fix up this problem by adding to the end of his script.
for (i = 0; i<Math.min(array1.length, array2.length); i++)
array1[i] = array3[i][0];
array2[i] = array3[i][1];
alert(array1+"\r"+array2)
Now in order of appearance
Jongware said:
.. I wonder why this does not work .. Perhaps my logic is flawed?
Hi Jongware
I tried your (2nd) script twice and on both occurrences it crashed my ESTK
From what I understand (not said with much confidence) the flaw in your logic is you are passing your arrays values to be sorted array1[?] and array2[?+1] to the sort function as 'a' and 'b' but and then refer to the array array1[a].
So let's examine a bit of the code
var array1 = [4, 3, 1, 5, 2];
array3.sort (function(a,b) {
var swap, diff = array1[a] - array1[b];
When run this is the equivalent of saying (for the first run of the sort loop)
diff = array1[4] - array1[3]
i.e. diff = 2 - 5
i.e. diff = -3
What you wanted to do was
diff = a - b
= 4 -3
That's the way I see it.
Hi Marc
Change the first two lines of your first script to:
var array1 = [40, 7, 1, 5, 2];
var array2 = ["forty", "seven", "one", "five", "two"];
Then run the script
Now for my offering.
The fancy script
This script is not limited to a specific number of arrays.
after creating the arrays one creates an array of the arrays, specifies the number of the array that one wants to sort by and calls the function.
like this:
sortArraysInSync([a1,a2,a3,a4,a5], 1);
The arrays a1, a2, a3, ..... will get sorted according to the numeric or alphabetical order of the array specified in the 2nd parameter.
One could easily (I think) change the sort function to first sort by array x and then by array y etc.
// Advanced Sort Variable Numbers of Arrays in Sync Script by Trevor
// http://forums.adobe.com/thread/1062126?tstart=0
var a1 = [2, 5, 10, 7, 100, 5, .5, 0]
a2 = ['two', 'five', 'ten', 'seven', 'one hundred', 'five', 'one half', 'zero'],
a3 = [ 'deux', 'cinq', 'dix', 'sept', 'cent', 'cinq', 'un demi', 'zéro' ],
a4 = [ 'twee', 'vijf', 'tien', 'zeven', 'honderd', 'vijf', 'helft', 'nul' ],
a5 = [ 'tsvey ', 'finef', 'tzien', 'zibn', 'eyn honderd', 'finef', 'eyn halb', 'nul' ];
alert("\tIndividual Arrays Before Sort\r"+a1+"\r"+a2+"\r"+a3+"\r"+a4+"\r"+a5);
sortArraysInSync([a1,a2,a3,a4,a5], 1);
alert("\tIndividual Arrays After Sort\r"+a1+"\r"+a2+"\r"+a3+"\r"+a4+"\r"+a5);
function sortArraysInSync (myArrays, s /* number or the array to sort by (starting from 1) */)
arr = []; var l1 = ll1 = myArrays[0].length, i = ll2 = myArrays.length;
s--;
while(l1--)
arr[l1]={}
i = myArrays.length;
while(i--) eval("arr["+l1+"].key"+i+" = myArrays[i][l1]");
arr.sort(mySort);
while (ll1--) for (i=0; i<myArrays.length;i++) eval ("myArrays[i][ll1] = arr[ll1].key"+i);
alert("\tFunction Array After Sort\r"+myArrays.join("\r"))
function mySort(a, b)
if (eval("isNumber(a.key"+s+") || isNumber(b.key"+s+")")) return eval("a.key"+s+"- b.key"+s+"");
else if (eval("a.key"+s+".toLowerCase() > b.key"+s+".toLowerCase()")) return 1 else return -1;
function isNumber(n) {return !isNaN(parseFloat(n)) && isFinite(n)}; // isNumber function from http://stackoverflow.com/questions/18082/validate-numbers-in-javascript-isnumeric/1830844#1830844
For the simple 2 array sort I would have done as I said much the same as your one:
// Simple Sort Arrays in Sync Script by Trevor
// http://forums.adobe.com/thread/1062126?tstart=0
var a1 = ['two', 'five', 'ten', 'seven', 'one hundred', 'five', 'one half', 'zero'],
a2 = [2, 5, 10, 7, 100, 5, .5, 0]
alert("Individual Arrays Before Sort\r"+a1+"\r"+a2);
sortArraysInSync(a1,a2);
alert("Individual Arrays After Sort\r"+a1+"\r"+a2);
function sortArraysInSync (x, y)
var arr = [], l1 = l2 = Math.min(y.length, x.length);
while (l1--) arr.push({name: x[l1], number: y[l1]});
arr.sort(function(a, b) { return a.number - b.number; });
while (l2--)
x[l2] = arr[l2].name;
y[l2] = arr[l2].number;
I did a speed test by putting 2 3000 item arrays into my, your dbuffies and Jongware script and timing them.
These were the results.
Test done with alerts removed with program set to real time priority and alerts removed.
These were the arrays and timing method
var a1 = ['zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two', 'zero', 'one half', 'five', 'one hundred', 'seven', 'ten', 'five', 'two'],
a2 = [, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2, 0, 0.5, 5, 100, 7, 10, 5, 2];
sdate = new Date();
startTime = sdate.getTime();
sortArraysInSync([a1,a2],2); // each scipt to its own.
edate = new Date();
endTime = edate.getTime();
totalTime = (endTime-startTime)/1000;
alert("Individual Arrays After Sort\r"+totalTime+"\r"+a1+"\r"+a2);
Script
Seconds taken to sort 2 Arrays 3000 items each
Comments
Trevor's Simple Script
1.3
Rick's (Frameexpert) Script
12.3
Trevor's Fancy Script
33
Bduffy's Script
68
Jongware's Script
Crashed, don't know why?
Don't forget to pick the correct answer.
My 'fancy' script is slowed down considerably because of thoses evil evals. Does anyone have a solution for this?
Regards
Trevor -
Using Comparator to sort an array
I didn't undersatnd why a comparator is used for sorting an arry in ascending order
For descending also i didn't understand the logic it follows
I have a program which works for both asc and desc using comparator
import java.io.*;
import java.util.*;
class Ascend implements Comparator<Integer>
public int compare(Integer i1, Integer i2)
return i1.compareTo(i2);
class Descend implements Comparator<Integer>
public int compare(Integer i1, Integer i2)
return i2.compareTo(i1);
public class ArrayDemo {
public static void main(String[] args) throws Exception
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("How many Elements");
int size = Integer.parseInt(br.readLine());
Integer[] arr = new Integer[size];
for(int i=0 ;i<size;i++)
System.out.println("Enter "+(i+1)+"th element");
arr=Integer.parseInt(br.readLine());
Arrays.sort(arr, new Ascend());
System.out.println("The sorted array in Ascending order is:");
display(arr);
Arrays.sort(arr, new Descend());
System.out.println("The sorted array in Descending order is:");
display(arr);
static void display(Integer[] a)
for(Integer i:a)
System.out.print(i+"\t");
System.out.println("");
can anyone explain
1 why do we are passing an object of Ascend class(code was there in above program) to Arrays.sort() method
2. what will be retruned by that object
3 why do we are passing an object of Descend class(code was there in above program) to Arrays.sort() method
4. what will be retruned by that object
5 We can sort the array in ascending simply by using Arrays.sort(arr) method directly, then what was usage of Ascend class
If I am wrong in understating the code of the above pls correct me and tell me the actual usage of Comparator<T> interfance and its method compare()
Pls....camickr wrote:
Don't forget to use the Code Formatting Tags so the posted code retains its original formatting. That is done by selecting the code and then clicking on the "Code" button above the question input area.am sorry!! pls find the code and try to execute it. It works fine in sorting
import java.io.*;
import java.util.*;
class Ascend implements Comparator<Integer>
public int compare(Integer i1, Integer i2)
return i1.compareTo(i2);
class Descend implements Comparator<Integer>
public int compare(Integer i1, Integer i2)
return i2.compareTo(i1);
public class ArrayDemo {
public static void main(String[] args) throws Exception
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("How many Elements");
int size = Integer.parseInt(br.readLine());
Integer[] arr = new Integer[size];
for(int i=0 ;i<size;i++)
System.out.println("Enter "+(i+1)+"th element");
arr=Integer.parseInt(br.readLine());
Arrays.sort(arr, new Ascend());
System.out.println("The sorted array in Ascending order is:");
display(arr);
Arrays.sort(arr, new Descend());
System.out.println("The sorted array in Descending order is:");
display(arr);
static void display(Integer[] a)
for(Integer i:a)
System.out.print(i+"\t");
System.out.println("");
Can u explain the below
what happens actually when Arrays.sort(arr,new Descend() ) is executed -
Java sorting the array of objects
Hi ,
I have a question on sorting objects in java.
I have a java interface some thing like :
public classmyObj extends Nullable
private int objId;
private Datemydate;
public int getObjID();
public Date getmyDate();
public int getISecondD();
}I need to create the array of the objects of this class that are sorted on the ObjID:
classmyObj[] collectionObjects
I need to pass this collectionObjects to another function.
Now how should I sort these objects based on the ObjID on collection?
Please help with this!
Thanksneeto wrote:
Hi ,
I have a question on sorting objects in java.
I have a java interface some thing like :You mean class?
>
public classmyObj extends Nullable
private int objId;
private Datemydate;
public int getObjID();
public Date getmyDate();
public int getISecondD();
}I need to create the array of the objects of this class that are sorted on the ObjID:
classmyObj[] collectionObjects
I need to pass this collectionObjects to another function.
Now how should I sort these objects based on the ObjID on collection?Create a comparator and use it in a call to Collections.sort (or Arrays.sort if you have an array) -
Sorting an array of numbers with loops
Hi, i'm looking for a way to sort an array or numbers with loops.
my array looks like this. int[] numbers = {5,2,7,9,1}
i know how to use the "sort" method and i want to do it without the sort method, but i am not very clear on the logic behind it.
by the end it should look like this, {1,2,5,7,9}
i know 2 loops are used, can you please give me a logic to work with.
i have started the loops but what to do inside???
int temp;
for (int i=0; i<numbers.length; i++){
for (int j=1; j<numbers; j++){
if (numbers<numbers[j])
temp = numbers[i];
Any suggestions i will be thankful for.
thank you.fly wrote:
no not really a homework question.. i want to improve my logic because it is very poor at the moment.. but i'm sure someone knows how to sort an array with loops only.Yes, we do know how to do it, I once wrote a heapsort in assembly code, as a real work project. But you rarely get a project like that the good ones were all done years ago.
All the algorithms I suggested you look at use loops. the simplest and slowest is the bubble sort. This one runs by comparing values and swapping their locations, the wikipedia article http://en.wikipedia.org/wiki/Bubble_sort has the algorithm. -
I need to sort an array of strings based on the number in each string.
Basically, I have a directory of files that all have the same name but each with a different number on the end.
example: image 1.jpg, image 2.jpg, etc.
When I use the List Directory function that returns an array of strings containing the file names in the directory, they don't come out in a 1, 2, 3, order like they appear in the directory. It sorts them character by character so that they come out like: 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 21, 22 etc.
Is there a simple way of sorting this array of strings with the file names (as above) so that they are in numerical order?It's a while since this thread was started, but I am sure others will have use for this so here goes:
The in-built array sort function sorts the strings the same way DOS and Windows do. Microsoft has fixed this in the Explorer that comes with XP, however the rest of the OS(s) still sorts the old way.
The attached "AlphaLogical String Array Sort" VIs will sort strings arrays the same way as the new XP Explorer. There are three different implementations of the sorting, one based on the Insertion sort algorithm, a Quick Sort based on recursive calls (the most elegant way, but unfortunately LabVIEW has too much overhead when doing recursive calls so this is actually a very slow alternative) and finally the fastest; a stack based Quick Sort. There is also a test VI that will show you how the different implementations perform.
I had not used recursive calls in LV much until I made the attached quick sort and was a bit disappointed by the fact that it is so slow, but it's a good learning example...The ability to do recursive calls this way was introduced in LV7 I believe...There is an example here on the zone that shows how you can calulate a factorial by using recursive calls, however - unlike for the quick sort (normally) - recursive calls are actually not the optimal solution for that calculation.
Message Edited by Mads on 09-13-2005 02:30 AM
MTO
Attachments:
AlphaLogical Sorting.zip 142 KB -
Sorting an array of filenames by filetype?
I have an array of filenames read from a directory list. I
can parse the
file type from each filename using a function. How would I
then sort the
array by their respective file type, so that all PDF files
sort together in
the array, for example? Or would it be easier to just loop
through the
array by filetype, printing each matching array value?
Murray --- ICQ 71997575
Adobe Community Expert
(If you *MUST* email me, don't LAUGH when you do so!)
==================
http://www.projectseven.com/go
- DW FAQs, Tutorials & Resources
http://www.dwfaq.com - DW FAQs,
Tutorials & Resources
==================That's exactly the code I am using except without the
multisort. It should
be an easy retrofit!
Thanks, Joe!
Murray --- ICQ 71997575
Adobe Community Expert
(If you *MUST* email me, don't LAUGH when you do so!)
==================
http://www.projectseven.com/go
- DW FAQs, Tutorials & Resources
http://www.dwfaq.com - DW FAQs,
Tutorials & Resources
==================
"Joe Makowiec" <[email protected]> wrote in
message
news:[email protected]...
> On 14 Apr 2008 in macromedia.dreamweaver.appdev, Joe
Makowiec wrote:
>
>> On 14 Apr 2008 in macromedia.dreamweaver.appdev,
Murray *ACE* wrote:
>>
>>> I have an array of filenames read from a
directory list. I can
>>> parse the file type from each filename using a
function. How would
>>> I then sort the array by their respective file
type, so that all
>>> PDF files sort together in the array, for
example? Or would it be
>>> easier to just loop through the array by
filetype, printing each
>>> matching array value?
>>
>>
http://www.php.net/manual/en/ref.array.php
>>
>> There are a bunch of sorting functions there.
array_multisort and
>> uasort both look interesting. Got code?
>
> Dropin for a directory listing in a <ul>:
>
> <pre>
> <?php
> $files2 = array();
> if ($handle = opendir('.')) {
> echo "Input: .\n";
> echo "Directory handle: $handle\n";
> /* This is the correct way to loop over the directory.
> while (false !== ($file = readdir($handle))) {
> $files[] = $file;
> if (substr($file, 0, 1) != '.') {
> $separator = split('\.', $file);
> $files2[] = array('filename' => $separator[0], 'ext'
=>
> $separator[1]);
> }
> echo "$file\n";
> }
> closedir($handle);
>
> // print_r($files);
> // print_r($files2);
>
> foreach ($files2 as $key => $row) {
> $filename[$key] = $row['filename'];
> $ext[$key] = $row['ext'];
> }
>
> array_multisort($ext, SORT_ASC, $filename, SORT_DESC,
$files2);
>
> // print_r($files2);
>
> reset($files2);
>
> }
> ?>
> </pre>
> <ul>
> <?php
> foreach ($files2 as $myfile) {
> echo "\t<li>";
> echo $myfile['filename'];
> echo (empty($myfile['ext'])) ? '' : '.' .
$myfile['ext'];
> echo "</li>\n";
> }
> ?>
> </ul>
>
> Code's probably uglier than it needs to be, but it
works.
>
> --
> Joe Makowiec
>
http://makowiec.net/
> Email:
http://makowiec.net/contact.php -
Sort 1D array of clusters by the second element in the cluster
Hello Folks,
I need to sort 1D array of clusters [Point (X & Y)] using the second element (Y) of the Point cluster. Can anyone guide!!!!
Thanks.
ManuI see Darren is a bit faster than me.
Here's my solution (LabVEWI 7.0), it is pretty similar.
Message Edited by altenbach on 03-22-200602:01 PM
LabVIEW Champion . Do more with less code and in less time .
Attachments:
SortByElement2.png 4 KB
SortByElement2.vi 27 KB -
Sort an array of Application Class with respect to property
class MyClass
property string myProgram;
property string myType;
property string Description;
end-class;
Local array of MyClass &myProgArray;
&myProgArray.Sort("D");
I want to sort the Array in descending Order with respect to "myType".
How to provide "myType" parameter to sort method ?
Edited by: Mohsin on Oct 11, 2012 3:28 PMIf you add myType to the array then you can sort on that, assuming you have different values for myType.
According to PeopleBooks (8.51), API documentation;
Sort(order)
Note. This method works with arrays that have only one or two dimensions. You receive a runtime error if you try to use this method with an array that has more than two dimensions. -
Sort Grid array and find the 4 corner dots.
What I am trying to do is this: I am using NI Visions find circles vi on a grid array or dots which gives me a 1D array of clusters. In these clusters is the x,y coordinates of the grid dots that have been found. I need to figure out which ones are the 4 corner dots and the 4 center dots along the edges. The problem is the 1D array the find circle routine outputs is not in a logical order. My grid could possibly change in size too. Right now it is 14x12 but could be 13x12 or 14x13 or something like that.
I have found that if I send the 1D array of clusters though the sort 1D array it will sort it from top to bottom left to right, which I will then know that teh 1st element is the top left corner and the last element is the bottom right corner, but I am not sure what the easiest way is to figure out the rest of them.
Any help would be appreciated.
I am using labview 7.1 and NI Vision 8.0
Thanks
Brad
Brad Remenak
Certified LabVIEW ArchitectHi Brad,
If you want to get the coordinates of specific dots on the image, you
can search for the dots using different ROIs that only focus on certain
areas of the image (ex: use an ROI that only searches in the
upper-right corner so that you know the 1 match that shows up is
definitely there). Without knowing how consistent the dot
locations are, I would suggest dividing up the ROI dimensions based on
the variable size of the grid.
Hope this helps,
Irene Chow
National Instruments -
La fonction "Sort 1D Array" accepte en entrée un Tableau de n'importe quel type.
N'importe quel type ... hmmm, presque.
Returns a sorted version of array with the elements arranged in ascending order.
If array is an array of clusters, the function sorts the elements by comparing the first elements.
If the first elements match, the function compares the second and subsequent elements.
Résolu !
Accéder à la solution.oui, j'avais remarqué ... si on place le string en 1er dans le Cluster ... la fonction accepte.
Dans ce cas, le tri s'effectue sur le string et la fonction ne tient pas compte de la présence de la ref.
Dans l'absolu, vouloir "trier" des references entre elles n'a pas de sens.
Il faudrait trier l'équivalent U32 .... cela, à mon sens, est vide de sens.
par contre la fonction "recherche" accepte une Ref. ... mais rechercher une référence a du sens.
Les fonction "Tri" et "Recherche" ont toutes les deux cette même phrase dans leur "doc_help" respective.
"accepte un Tableau de n'importe quel type".
Pour la fonction "recherche", c'est parfaitement juste ... pour la fonction "Tri", cette phrase est fausse.
Je voulais pointer la doc qui parfois est lègèrement erronée.
Petit défaut de ma part, je suis perfectionniste ... mais je me soigne.
En fait, je suis perfectionniste uniquement pour ce qui a une réelle importance pour moi.
Pour le reste, je peux laisser tout pourrir en tas et enjamber le chose ... sans le moindre scrupule -
how can i sort an array by name and also by size
size is an int
name a string
whats the best way
thankyou.Thats my main class code...
as you can see i havent been able to work out the last few options on the menu
which include size and name
if anyone can get me started in the right direction id apreciate it very much thankyou!
import java.util.*;
import java.io.*;
* @author aRiFy
public class SpaceProgram {
static int TotalObjects = 0;
static Scanner sc = new Scanner(System.in);
public static void main(String args[]) throws FileNotFoundException, IOException
menuApp();
//MENU
public static void menuApp() throws FileNotFoundException, IOException
SpaceObject[] Universe = new SpaceObject[1000000];
System.out.println("Welcome to the Universe Program\n\n");
char opt = 'x';
while (opt !='M')
System.out.println(""
+ "A - load from file\n"
+ "B - Display to screen\n"
+ "C - add a new space body\n"
+ "D - Write to file\n"
+ "E - Display by size\n"
+ "F - Display by name\n"
+ "G - Display moons of planet/dwarf planet\n"
+ "H - Display all space bodies in temperature range\n"
+ "I - Display a given space body\n"
+ "J - Display largest space body\n"
+ "K - Display smallest space body\n"
+ "L - Display most distant object\n"
+ "M - Exit Program\n");
System.out.print("Enter your Menu option: ");
String s = sc.next();
opt = s.charAt(0);
switch (opt)
case 'A':
case 'a':
input(Universe);
break;
case 'B':
case'b':
displayToScreen(Universe);
break;
case 'C':
case 'c':
addObject(Universe);
break;
case 'D':
case'd':
addObjectToFile(Universe);
break;
case 'E':
case'e':
sortSize(Universe);
break;
case 'F':
case'f':
sortName(Universe);
break;
case 'G':
case'g':
break;
case 'H':
case'h':
tempRange(Universe);
break;
case 'I':
case'i':
SearchObjects(Universe);
break;
case 'J':
case'j':
findLargest(Universe);
break;
case 'K':
case'k':
findSmallest(Universe);
break;
case 'L':
case'l':
//mostDistant(Universe);
break;
case 'M':
case'm':
System.exit(0);
break;
default:
//msg = "";//wrongValue();
break;
//ENDMENU
//Add Space Object To File
public static SpaceObject[] addObjectToFile(SpaceObject[] Universe ) throws FileNotFoundException, IOException
System.out.println("What is the name of the text file you would like to write to? ");
String textfile = sc.next();
File f =new File(textfile);
if(!f.exists())
f.createNewFile();
System.out.println("File Created");
System.out.print("Add a Star, Planet, Dwarfplanet or Moon? "); //Asks to add
String adding = sc.next();
if (adding.equalsIgnoreCase("star")) //Add Star
String OType="Star";
System.out.println("Enter the name of the Star: ");
String OName = sc.next();
System.out.println("Enter the Radius: ");
String ORadius = sc.next();
double ORadiusD=Double.parseDouble(ORadius);
System.out.println("Class O -blue");
System.out.println("Class B -blue white");
System.out.println("Class A -white");
System.out.println("Class F -yellowish white");
System.out.println("Class G -yellow");
System.out.println("Class K -orange");
System.out.println("Class M -red");
System.out.println("Class W -superluminous blue");
System.out.println("Class L -dark red");
System.out.println("Class T -cool brown dwarf");
System.out.println("Class Y -ultra cool brown dwarf");
System.out.println("Class C -carbom star");
System.out.println("Class S -between a class M and carbon star");
System.out.println("Class D -white dwarf");
System.out.println("Enter A Spectral Type: ");
String ST = sc.next();
System.out.println("I -supergiants");
System.out.println("II -bright giants");
System.out.println("III -normal giants");
System.out.println("IV -subgiants");
System.out.println("V -dwarfs");
System.out.println("VI -subdwarfs");
System.out.println("VII -white dwarfs");
System.out.println("Enter Yerkes Spectral Classification: ");
String YSC = sc.next();
System.out.println("Enter the Distance: ");
String Distance = sc.next();
double DistanceD=Double.parseDouble(Distance);
Universe[TotalObjects]= new Star(OType, OName, ORadiusD, ST, YSC, DistanceD);
Universe[TotalObjects].display();
TotalObjects = TotalObjects +1;
System.out.println("Star Added");
PrintWriter outputStream = null;
try
outputStream = new PrintWriter(new FileOutputStream(textfile, true));
catch(FileNotFoundException e)
System.out.println("Error opening spacebodies.txt");
System.exit(0);
System.out.println("Writing to file");
outputStream.println(OType);
outputStream.println(OName);
outputStream.println(ORadiusD);
outputStream.println(ST);
outputStream.println(YSC);
outputStream.println(DistanceD);
outputStream.println("\n");
outputStream.close();
System.out.println("Written to file succesfully");
else if (adding.equalsIgnoreCase("planet")) //Add Planet
String OType="Planet";
System.out.println("Enter the name of the Planet: ");
String OName = sc.next();
System.out.println("Enter the Radius: ");
String ORadius = sc.next();
double ORadiusD=Double.parseDouble(ORadius);
System.out.println("Enter the Mass: ");
String PMass = sc.next();
System.out.println("Enter the Orbital Period: ");
String POB = sc.next();
double POBD=Double.parseDouble(POB);
System.out.println("Enter the Temperature: ");
String PTemp = sc.next();
double PTempD=Double.parseDouble(PTemp);
Universe[TotalObjects]= new Planet(OType, OName, ORadiusD, PMass, POBD, PTempD);
Universe[TotalObjects].display();
TotalObjects = TotalObjects +1;
System.out.println("Planet Added");
PrintWriter outputStream = null;
try
outputStream = new PrintWriter(new FileOutputStream(textfile, true));
catch(FileNotFoundException e)
System.out.println("Error opening spacebodies.txt");
System.exit(0);
System.out.println("Writing to file");
outputStream.println(OType);
outputStream.println(OName);
outputStream.println(ORadiusD);
outputStream.println(PMass);
outputStream.println(POB);
outputStream.println(PTempD);
outputStream.println("\n");
outputStream.close();
System.out.println("Written to file succesfully");
else if (adding.equalsIgnoreCase("dwarfplanet")) //add dwarfplanet
String OType="DwarfPlanet";
System.out.println("Enter the name of the Dwarf Planet: ");
String OName = sc.next();
System.out.println("Enter the Radius: ");
String ORadius = sc.next();
double ORadiusD=Double.parseDouble(ORadius);
System.out.println("Enter the Mass: ");
String PMass = sc.next();
System.out.println("Enter the Temperature: ");
String PTemp = sc.next();
double PTempD=Double.parseDouble(PTemp);
Universe[TotalObjects]= new DwarfPlanet(OType, OName, ORadiusD, PMass, PTempD);
Universe[TotalObjects].display();
TotalObjects = TotalObjects +1;
System.out.println("DwarfPlanet Added");
PrintWriter outputStream = null;
try
outputStream = new PrintWriter(new FileOutputStream(textfile, true));
catch(FileNotFoundException e)
System.out.println("Error opening spacebodies.txt");
System.exit(0);
System.out.println("Writing to file");
outputStream.println(OType);
outputStream.println(OName);
outputStream.println(ORadiusD);
outputStream.println(PMass);
outputStream.println(PTempD);
outputStream.println("\n");
outputStream.close();
System.out.println("Written to file succesfully");
else if (adding.equalsIgnoreCase("moon"))
String OType="Moon";
System.out.println("Enter the name of the Moon: ");
String OName = sc.next();
System.out.println("Enter the Radius: ");
String ORadius = sc.next();
double ORadiusD=Double.parseDouble(ORadius);
System.out.println("Enter the Mass: ");
String MMass = sc.next();
System.out.println("Enter the Planet: ");
String Planet = sc.next();
System.out.println("Enter the Temperature: ");
String MTemp = sc.next();
double MTempD=Double.parseDouble(MTemp);
Universe[TotalObjects]= new Moon(OType, OName, ORadiusD, MMass, Planet, MTempD);
Universe[TotalObjects].display();
TotalObjects = TotalObjects +1;
System.out.println("Moon Added");
PrintWriter outputStream = null;
try
outputStream = new PrintWriter(new FileOutputStream(textfile, true));
catch(FileNotFoundException e)
System.out.println("Error opening spacebodies.txt");
System.exit(0);
System.out.println("Writing to file");
outputStream.println(OType);
outputStream.println(OName);
outputStream.println(ORadiusD);
outputStream.println(MMass);
outputStream.println(Planet);
outputStream.println(MTempD);
outputStream.println("\n");
outputStream.close();
System.out.println("Written to file succesfully");
else
System.out.println("You have entered an invalid input please try again");//invalid input
addObjectToFile(Universe);
return Universe;
public static SpaceObject[] addObject(SpaceObject[] Universe ) throws FileNotFoundException
System.out.print("Add a Star, Planet, Dwarfplanet or Moon? "); //Asks to add
String adding = sc.next();
if (adding.equalsIgnoreCase("star")) //Add Star
String OType="Star";
System.out.println("Enter the name of the Star: ");
String OName = sc.next();
System.out.println("Enter the Radius: ");
String ORadius = sc.next();
double ORadiusD=Double.parseDouble(ORadius);
System.out.println("Class O -blue");
System.out.println("Class B -blue white");
System.out.println("Class A -white");
System.out.println("Class F -yellowish white");
System.out.println("Class G -yellow");
System.out.println("Class K -orange");
System.out.println("Class M -red");
System.out.println("Class W -superluminous blue");
System.out.println("Class L -dark red");
System.out.println("Class T -cool brown dwarf");
System.out.println("Class Y -ultra cool brown dwarf");
System.out.println("Class C -carbom star");
System.out.println("Class S -between a class M and carbon star");
System.out.println("Class D -white dwarf");
System.out.println("Enter A Spectral Type: ");
String ST = sc.next();
//char STc = ST.charAt(0);
System.out.println("I -supergiants");
System.out.println("II -bright giants");
System.out.println("III -normal giants");
System.out.println("IV -subgiants");
System.out.println("V -dwarfs");
System.out.println("VI -subdwarfs");
System.out.println("VII -white dwarfs");
System.out.println("Enter Yerkes Spectral Classification: ");
String YSC = sc.next();
System.out.println("Enter the Distance: ");
String Distance = sc.next();
double DistanceD=Double.parseDouble(Distance);
Universe[TotalObjects]= new Star(OType, OName, ORadiusD, ST, YSC, DistanceD);
Universe[TotalObjects].display();
TotalObjects = TotalObjects +1;
System.out.println("Star Added");
else if (adding.equalsIgnoreCase("planet")) //Add Planet
String OType="Planet";
System.out.println("Enter the name of the Planet: ");
String OName = sc.next();
System.out.println("Enter the Radius: ");
String ORadius = sc.next();
double ORadiusD=Double.parseDouble(ORadius);
System.out.println("Enter the Mass: ");
String PMass = sc.next();
System.out.println("Enter the Orbital Period: ");
String POB = sc.next();
double POBD=Double.parseDouble(POB);
System.out.println("Enter the Temperature: ");
String PTemp = sc.next();
double PTempD=Double.parseDouble(PTemp);
Universe[TotalObjects]= new Planet(OType, OName, ORadiusD, PMass, POBD, PTempD);
Universe[TotalObjects].display();
TotalObjects = TotalObjects +1;
System.out.println("Planet Added");
else if (adding.equalsIgnoreCase("dwarfplanet")) //add dwarfplanet
String OType="DwarfPlanet";
System.out.println("Enter the name of the Dwarf Planet: ");
String OName = sc.next();
System.out.println("Enter the Radius: ");
String ORadius = sc.next();
double ORadiusD=Double.parseDouble(ORadius);
System.out.println("Enter the Mass: ");
String PMass = sc.next();
System.out.println("Enter the Temperature: ");
String PTemp = sc.next();
double PTempD=Double.parseDouble(PTemp);
Universe[TotalObjects]= new DwarfPlanet(OType, OName, ORadiusD, PMass, PTempD);
Universe[TotalObjects].display();
TotalObjects = TotalObjects +1;
System.out.println("DwarfPlanet Added");
else if (adding.equalsIgnoreCase("moon"))
String OType="Moon";
System.out.println("Enter the name of the Moon: ");
String OName = sc.next();
System.out.println("Enter the Radius: ");
String ORadius = sc.next();
double ORadiusD=Double.parseDouble(ORadius);
System.out.println("Enter the Mass: ");
String MMass = sc.next();
System.out.println("Enter the Planet: ");
String Planet = sc.next();
System.out.println("Enter the Temperature: ");
String MTemp = sc.next();
double MTempD=Double.parseDouble(MTemp);
Universe[TotalObjects]= new Moon(OType, OName, ORadiusD, MMass, Planet, MTempD);
Universe[TotalObjects].display();
TotalObjects = TotalObjects +1;
System.out.println("Moon Added");
else
System.out.println("You have entered an invalid input please try again");//invalid input
addObject(Universe);
return Universe;
//read text file
public static void input(SpaceObject[] Universe) throws FileNotFoundException
System.out.println("What is the name of the text file you would like to write to? ");
String textfile = sc.next();
File f =new File(textfile);
Scanner infile;
infile = new Scanner(new File("spacebodies.txt"));
while (infile.hasNext())
String SpaceType = infile.next();
String OType = infile.nextLine();
String OName = infile.nextLine();
double ORadius = infile.nextDouble();
if (SpaceType.equals("Star"))
String ST = infile.next();
String YSC = infile.next();
infile.nextLine();
double Distance = infile.nextDouble();
Universe[TotalObjects]= new Star("Star", OName, ORadius, ST, YSC, Distance);
Universe[TotalObjects].display();
TotalObjects = TotalObjects +1;
System.out.println("");
else if (SpaceType.equals("Planet"))
String PMass = infile.next();
infile.nextLine();
double POB = infile.nextDouble();
double PTemp = infile.nextDouble();
Universe[TotalObjects]= new Planet("Planet", OName, ORadius, PMass, POB, PTemp);
Universe[TotalObjects].display();
TotalObjects = TotalObjects +1;
System.out.println("");
else if (SpaceType.equals("DwarfPlanet"))
String PMass = infile.next();
infile.nextLine();
double PTemp = infile.nextDouble();
Universe[TotalObjects]= new DwarfPlanet("DwarfPlanet", OName, ORadius, PMass, PTemp);
Universe[TotalObjects].display();
TotalObjects = TotalObjects +1;
System.out.println("");
else if (SpaceType.equals("Moon"))
String MMass = infile.next();
String Planet = infile.nextLine();
infile.nextLine();
double MTemp = infile.nextDouble();
Universe[TotalObjects]= new Moon("Moon", OName, ORadius, MMass, Planet, MTemp);
Universe[TotalObjects].display();
TotalObjects = TotalObjects +1;
System.out.println("");
else{
System.out.println("Error");
//Display To Screen
public static void displayToScreen(SpaceObject[] Universe)
System.out.println("Displaying Added Space Objects\n");
if (TotalObjects>0)
for (int i=0;i<TotalObjects;i++)
Universe.display();
System.out.println("");
//Search Objects
public static void SearchObjects(SpaceObject[] Universe)
System.out.println("Please Enter a Space Body to Search: ");
String SBody = sc.nextLine();
SBody = sc.nextLine();
for (int i=0;i<TotalObjects;i++)
if (Universe[i].OName.equalsIgnoreCase(SBody))
Universe[i].display();
//Find Largetst
public static void findLargest(SpaceObject[] Universe)
double MaxRadius = Universe[0].ORadius;
int Max=0;
for (int i=0;i<TotalObjects;i++)
if (MaxRadius < Universe[i].ORadius)
MaxRadius = Universe[i].ORadius;
Max = i;
Universe[Max].display();
//Find Smallest
public static void findSmallest(SpaceObject[] Universe)
double MaxRadius = 900000;
int Max=0;
for (int i=0;i<TotalObjects;i++)
if (MaxRadius < Universe[i].ORadius)
MaxRadius = Universe[i].ORadius;
Max = i;
Universe[Max].display();
//Temp Range
public static void tempRange(SpaceObject[] Universe)
public static void mostDistant(SpaceObject[] Universe)
public static void sortSize(SpaceObject[] Universe)
public static void sortName(SpaceObject[] Universe)
-
i have an array with three fields: id, name and date.
i want to sort it by name first and then date.
the size of my array could be as large as 1 million.
what could be the most efficient way to do so?
tia!It's very inefficient to sort an array on "the fly".
In that case at least use a linked list so you don't
have to move all elements after the insertion point to
make room for a new insert. But it's much better to
sort afterwards when all elements are in the array.Use a TreeSet. A linked list will be slower than a TreeSet, I suspect.
I believe that with a TreeSet, insertions will be somewhat slower (O(logN) vs O(c)), but the subsequent sorting of a linked list will be, what, at least O(NlogN) and possibly O(N^2)? And when you're inserting the first elements into the TreeSet, it should be closer to O(c) anyway, whereas the after-the-fact sorting of a LinkedList wouldn't have an advantage like that.
Then if necessary extract an array out of the TreeSet when you're done creating/inserting elements.
But really, use a database. -
The time complexity of "Sort 1D Array"
Does anyone know the time complexity of "Sort 1D Array"? The document of this function does not say anything about that, so I write test VI to sort an array of 10000 integer elements. It seems that the excution time is less than 1 second, so I guess the complexity is O(n*logn). Any suggestion would be appreciated, thanks.
A few thoughts based on my recollection of that old coding challenge. There are different kinds of algorithmic approaches you may consider.
1. A simple approach to that challenge could involve a lot of search / lookup functions. Each time you parse a word, you perform a search to see if it's in your list already. If so, increment its count. If not, add it to the list with count=1.
This was far too slow for word counting large docs. Too many slow-ish searches. But pretty easy to implement and maybe good enough for smaller docs.
2. I pursued an approach that used hashing instead of searches. It *seemed* too slow, but some months after the challenge when I had another use for the core hash table functionality, I found a really dumb bug that I'd overlooked before. Fixing it improved the speed by something like 100x. (Missed one spot where I needed a shift register to enforce in-placeness).
This is largely the same approach, merely trying to speed up the lookup/search function via a more complex technique (hash tables). As I found out, the complexity makes it more bug-prone. Still, once fixed, lookup speed is in the order of constant with no clear dependency on the number of elements in the hash table. (Note: it *is* still dependent on the "fill ratio". You want enough memory available to size your table for maybe ~25% usage or less.)
3. One idea I tried out was to maintain a separate list of the 10 or 25 most-common words, sorted by count. (The main reason was that there could be a tie for 4th place at the end, and I wanted enough extra candidates around to get the correct tie-breaker result.) Each time I parsed another word and incremented its count, I'd check to see whether its new count qualified it to belong in the special most-common list. I still did a lot of lookup and sort stuff, but it was always on a very
There are surely other kinds of data structures and algorithms available. Do you have a specific app in mind for this? Or just generally curious? I ask because some of the things one might do to optimize for a specific app (or code challenge) wouldn't be so appropriate as a general-purpose routine.
-Kevin P.
Maybe you are looking for
-
This operation has inherited where is my iphone option too. It should be selectable option but it came with restore. I got crazy of this. I bought a new phone, wanted to bring data from other phone, but it brough icloud settings and even where is my
-
Printer not present when trying to connect even though drivers have been installed
printer not present when trying to connect even though drivers have been installed
-
ITunes 7.15 will not install
every time i try to install itunes 7.15 i keep on getting an error message bout half way through saying that a network resource is unavailable, and it gives me the option to find an alternate path to locate the file "iTunes.msi" Ive found it, in fact
-
Colors when exporting to PDF get all screwy
This just started last Friday - all of the sudden I can no longer print to PDF, export as PDF, export as a JPEG, copy to Photoshop or anything like that without the colors "solarizing" - it's almost like a reverse image. Type, imported photos, vector
-
Error while lookup Plain exception:Problem when calling an adapter by using communication channel LookupChannel (Party: , Service: R/3 System Service, Object ID:xxxxxxxxxxxxxxxxxx) Check whether the communication channel exists in the Integration Dir