12-22-2007
Quote:
Originally Posted by
porter
Y
Have you got a really crap algorithm that may be mathmatically correct but is really inefficient?
It won't hurt to check that with the "bible of programming", old and new testament, so to say ;-)) :
- Donald Knuth, The Art of Computer Programming
Depending on your problem there is Vol.1 (Numerical Algorithms), Vol.2 (Seminumerical Algorithms) and Vol.3 (Sorting and Searching)
- Robert Sedgewick, Algorithms in C
Covering only C but for purely mathematical problems this should be the same more or less.
Here is another way: switch to a language more suited for achieving calculation power than C - use FORTRAN! I don't think that the mathlib of FORTRAN 77 has ever been beaten for speed.
bakunin
6 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I have two mashines with RedHat 8.0......they connected with cross over cabel...I want use both mashines for Internet, but modem has only first computer... Maybe..through gateway ?....
What must i do for it ?......
sorry for my terrible english.... (3 Replies)
Discussion started by: Pennywize
3 Replies
2. IP Networking
i have a computer (sempron 2200+) with Suse 9.3 and another computer with windows 98 (PI 233 Mhz). I'm connect first computer (with Suse) on the Internet through ethernet but second computers in not connect. How can connect second computers on the internet (with 3 network card...two on the first... (8 Replies)
Discussion started by: dragos
8 Replies
3. What is on Your Mind?
Here is an easy one.
Count the number of desktops and servers you have running at home, including your home office if you have one.
Don't count those that are in storage or you rarely use, count the ones that are powered on most, if not all, of the day (and night). (86 Replies)
Discussion started by: Neo
86 Replies
4. Shell Programming and Scripting
Hello everybody,
I have a little problem with one of my program. I made a plugin for collectd (a stats collector for my servers) but I have a problem to make it run in parallel.
My program gathers stats from logs, so it needs to run in background waiting for any new lines added in the log... (0 Replies)
Discussion started by: Samb95
0 Replies
5. Programming
Hello,
I extracted a list of files in a directory with the command ls . However this is not my computer, so the ls functionality has been revamped so that it gives the filesizes in front like this :
This is the output of ls command : I stored the output in a file filelist
1.1M... (5 Replies)
Discussion started by: ajayram
5 Replies
6. Solaris
Hi,
I need to rcp heavy files between 2 solaris 10/sparc M3000 computers. Currently theses 2 computers are linked via a switch/firewall and the rcp commands take a very long time, I have been told that this is because of the firewall (old one).
I asked my client to by a cross ethernet cable and... (2 Replies)
Discussion started by: zionassedo
2 Replies
LEARN ABOUT NETBSD
radixsort
RADIXSORT(3) BSD Library Functions Manual RADIXSORT(3)
NAME
radixsort, sradixsort -- radix sort
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <limits.h>
#include <stdlib.h>
int
radixsort(const u_char **base, int nmemb, u_char *table, u_int endbyte);
int
sradixsort(const u_char **base, int nmemb, u_char *table, u_int endbyte);
DESCRIPTION
The radixsort() and sradixsort() functions are implementations of radix sort.
These functions sort an nmemb element array of pointers to byte strings, with the initial member of which is referenced by base. The byte
strings may contain any values. End of strings is denoted by character which has same weight as user specified value endbyte. endbyte has
to be between 0 and 255.
Applications may specify a sort order by providing the table argument. If non-NULL, table must reference an array of UCHAR_MAX + 1 bytes
which contains the sort weight of each possible byte value. The end-of-string byte must have a sort weight of 0 or 255 (for sorting in
reverse order). More than one byte may have the same sort weight. The table argument is useful for applications which wish to sort differ-
ent characters equally, for example, providing a table with the same weights for A-Z as for a-z will result in a case-insensitive sort. If
table is NULL, the contents of the array are sorted in ascending order according to the ASCII order of the byte strings they reference and
endbyte has a sorting weight of 0.
The sradixsort() function is stable, that is, if two elements compare as equal, their order in the sorted array is unchanged. The
sradixsort() function uses additional memory sufficient to hold nmemb pointers.
The radixsort() function is not stable, but uses no additional memory.
These functions are variants of most-significant-byte radix sorting; in particular, see D.E. Knuth's Algorithm R and section 5.2.5, exercise
10. They take linear time relative to the number of bytes in the strings.
RETURN VALUES
Upon successful completion 0 is returned. Otherwise, -1 is returned and the global variable errno is set to indicate the error.
ERRORS
[EINVAL] The value of the endbyte element of table is not 0 or 255.
Additionally, the sradixsort() function may fail and set errno for any of the errors specified for the library routine malloc(3).
SEE ALSO
sort(1), qsort(3)
Knuth, D.E., "Sorting and Searching", The Art of Computer Programming, Vol. 3, pp. 170-178, 1968.
Paige, R., "Three Partition Refinement Algorithms", SIAM J. Comput., No. 6, Vol. 16, 1987.
McIlroy, P., "Computing Systems", Engineering Radix Sort, Vol. 6:1, pp. 5-27, 1993.
HISTORY
The radixsort() function first appeared in 4.4BSD.
BSD
January 27, 1994 BSD