Let's say I have Point[] and I want to sort it circle way (e.g.
2;2.4;1,8;2,8,5;4;8,2;7,1;4
The algo for this is:
if ((p[i].X<p[i+1].X & p[i].Y<Avg(p).Y & p[i+1].Y<Avg(p).Y) |
(p[i].X>p[i+1].X & p[i].Y>Avg(p).Y & p[i+1].Y>Avg(p).Y) )
Swap(p[i],p[i+1]);
where Avg(p).Y is the middle (average) of all Y values.
Other words:
First of all all point with Y above the Middle of Ys acsending and then
all point with Y under the Middle of Ys descending
Is there more effecient way to do this except buble sort for 2 axes?
TNX
--
Tamir Khason
You want dot.NET? Just ask:
"Please, www.dotnet.us " 6 8162
Use System.Array.Sort(p, new Class1()) where class1 implements IComparer and place your code in the compare routine.
--
Michael Culley
"Tamir Khason" <ta**********@tcon-NOSPAM.co.il> wrote in message news:u1**************@TK2MSFTNGP12.phx.gbl... Let's say I have Point[] and I want to sort it circle way (e.g. 2;2.4;1,8;2,8,5;4;8,2;7,1;4 The algo for this is: if ((p[i].X<p[i+1].X & p[i].Y<Avg(p).Y & p[i+1].Y<Avg(p).Y) | (p[i].X>p[i+1].X & p[i].Y>Avg(p).Y & p[i+1].Y>Avg(p).Y) ) Swap(p[i],p[i+1]); where Avg(p).Y is the middle (average) of all Y values. Other words: First of all all point with Y above the Middle of Ys acsending and then all point with Y under the Middle of Ys descending
Is there more effecient way to do this except buble sort for 2 axes?
TNX
-- Tamir Khason You want dot.NET? Just ask: "Please, www.dotnet.us "
TNX for response.
Did it at first try, but it works even slower then straight forward
algorithms. Maybe did something wrong?, but prety sure that did not
As far as I nuderstand IComparer did the same old Buble sort, so why it
slower?...
--
Tamir Khason
You want dot.NET? Just ask:
"Please, www.dotnet.us "
"Michael Culley" <mc*****@NOSPAMoptushome.com.au> wrote in message
news:u5*************@TK2MSFTNGP12.phx.gbl... Use System.Array.Sort(p, new Class1()) where class1 implements IComparer
and place your code in the compare routine. -- Michael Culley
"Tamir Khason" <ta**********@tcon-NOSPAM.co.il> wrote in message
news:u1**************@TK2MSFTNGP12.phx.gbl... Let's say I have Point[] and I want to sort it circle way (e.g. 2;2.4;1,8;2,8,5;4;8,2;7,1;4 The algo for this is: if ((p[i].X<p[i+1].X & p[i].Y<Avg(p).Y & p[i+1].Y<Avg(p).Y) | (p[i].X>p[i+1].X & p[i].Y>Avg(p).Y & p[i+1].Y>Avg(p).Y) ) Swap(p[i],p[i+1]); where Avg(p).Y is the middle (average) of all Y values. Other words: First of all all point with Y above the Middle of Ys acsending and then all point with Y under the Middle of Ys descending
Is there more effecient way to do this except buble sort for 2 axes?
TNX
-- Tamir Khason You want dot.NET? Just ask: "Please, www.dotnet.us "
"Tamir Khason" <ta**********@tcon-NOSPAM.co.il> wrote in message news:uf*************@TK2MSFTNGP12.phx.gbl... TNX for response. Did it at first try, but it works even slower then straight forward algorithms. Maybe did something wrong?, but prety sure that did not
Try converting this vb6 code to C#. It should be very quick. http://www.mikesdriveway.com/misc/sort.zip
As far as I understand IComparer did the same old Buble sort, so why it slower?...
I would have thought it would have a better algorithm than bubble. How many times does it call the Compare routine compared to your
bubble sort?
--
Michael Culley
Works your algorithmus?
If I had an array of points to be sorted by distance of origin [0;0], I
would calculate the sum of the square of x and y and sort by this number
Point[] points=....;
System.Collection.SortedList sortedList=new
System.Collection.SortedList(points.Length);
for(int i=0;i<points.Length;i++)
sortedList.Add(points[i].X*points[i].X+points[i].Y*points[i].Y,points[i]);
"Tamir Khason" <ta**********@tcon-NOSPAM.co.il> schrieb im Newsbeitrag
news:u1**************@TK2MSFTNGP12.phx.gbl... Let's say I have Point[] and I want to sort it circle way (e.g. 2;2.4;1,8;2,8,5;4;8,2;7,1;4 The algo for this is: if ((p[i].X<p[i+1].X & p[i].Y<Avg(p).Y & p[i+1].Y<Avg(p).Y) | (p[i].X>p[i+1].X & p[i].Y>Avg(p).Y & p[i+1].Y>Avg(p).Y) ) Swap(p[i],p[i+1]); where Avg(p).Y is the middle (average) of all Y values. Other words: First of all all point with Y above the Middle of Ys acsending and then all point with Y under the Middle of Ys descending
Is there more effecient way to do this except buble sort for 2 axes?
TNX
-- Tamir Khason You want dot.NET? Just ask: "Please, www.dotnet.us "
The documentation says that Array.Sort(myArray, IComparerObject) uses a
quicksort:
"This method uses the QuickSort algorithm. This is an O(n ^2) operation,
where n is the number of elements to sort, with an average of ?(n log n)."
"Michael Culley" <mc*****@NOSPAMoptushome.com.au> wrote in message
news:eZ****************@TK2MSFTNGP10.phx.gbl... "Tamir Khason" <ta**********@tcon-NOSPAM.co.il> wrote in message
news:uf*************@TK2MSFTNGP12.phx.gbl... TNX for response. Did it at first try, but it works even slower then straight forward algorithms. Maybe did something wrong?, but prety sure that did not
Try converting this vb6 code to C#. It should be very quick.
http://www.mikesdriveway.com/misc/sort.zip
As far as I understand IComparer did the same old Buble sort, so why it slower?...
I would have thought it would have a better algorithm than bubble. How
many times does it call the Compare routine compared to your bubble sort?
-- Michael Culley
"Dan" <da*@dontspamme.com> wrote in message news:eE**************@tk2msftngp13.phx.gbl... The documentation says that Array.Sort(myArray, IComparerObject) uses a quicksort:
"This method uses the QuickSort algorithm. This is an O(n ^2) operation, where n is the number of elements to sort, with an average of ?(n log n)."
I tested the ArrayList sort and compared it to my* sort. I thought mine was fast but the arraylist sort was significantly faster
(3.6 times faster). The bubble sort took huge amounts of time, I stopped it before it finished. If the op is getting poor results it
must be because their algorithm is slow. It could also be slow because of incorrect data being returned , eg if you tell it A > B
and B > A it is bound to get confused.
Results for sort of 100,000 items (Time (ms), Comparison Count):
My Sort 2895, 4,066,741
Arraylist sort 771, 2,223,288
Bubble Sort 2,500,000, 5,000,000,000
The time for the bubble sort was estimated cause I got sick of waiting :-)
*It's not really my sort, I pinched it from a website somewhere, all I did was package it into a reusable class. :-)
--
Michael Culley This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Gram |
last post by:
Hello,
Can anyone help out with a bubble sort for strings using ASP? I have a text
file of words id like to sort and count.
Thanks in advance for any help.
Gram.
|
by: Elijah Bailey |
last post by:
I want to sort a set of records using STL's sort() function,
but dont see an easy way to do it.
I have a
char *data;
which has size mn bytes where m is size of the record and
n is the...
|
by: PCHOME |
last post by:
Hi!
I have questions about qsort( ). Is anyone be willing to help?
I use the following struct:
struct Struct_A{
double value;
...
} *AA, **pAA;
|
by: Daniel Weinand |
last post by:
hello ng,
i have a problem and a imho an insufficient method of solution.
strings should be sorted by specific text pattern and dispayed
in groups. the strings are stored in a db and have the...
|
by: hoopsho |
last post by:
Hi Everyone,
I am trying to write a program that does a few things very fast
and with efficient use of memory...
a) I need to parse a space-delimited file that is really large,
upwards fo a...
|
by: yeti349 |
last post by:
Hi, I'm using the following code to retrieve data from an xml file and
populate a javascript array. The data is then displayed in html table
form. I would like to then be able to sort by each...
|
by: Protoman |
last post by:
Why doesn't my double bubble sort algorithm sort; it just spits the
numbers out, int the exact same order that I inputted them.
Code:
void swap(int& i,int& j)
{
i^=j;
j^=i;
i^=j;
|
by: SimeonArgus |
last post by:
I need to sort a list of points, so I've considered using an
IComparable implementation. Should be easy, right? But I need to know
two things in the CompareTo function, not one.
Test1: I need to...
|
by: kimt |
last post by:
Hello, I am currently writing an application that involves many (>
1000) points on a (x,y) plane. I am using a struct to contain the
position information, and I have the structs contained in a STL...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
| |