Sponsored Content
Top Forums Programming How to invert order in QuickSort Post 302421831 by jim mcnamara on Sunday 16th of May 2010 03:55:56 PM
Old 05-16-2010
You should be using the qsort library function in stdlib.h If you can't use that then this is probably homework, which means this should be reposted over there in the homework forum.

For qsort there needs to be a comparison function, let's call it compar()
it returns: 0 on equal, +1 when a is larger, -1 when b is larger:
Code:
int compar(const void *a, const void *b)
{
    const int *a1=(const int *)a;
    const int *b1=(const int *)b;
    return *b1 - *a1;
}

This one sorts 99 -> 1, in reverse order.
flip the position of *a1 and *b1 in the subtraction statement to sort 1->99
 

10 More Discussions You Might Find Interesting

1. AIX

Where to Order 5.1L Cds

Anyone know where you can purchase a 5.1 cd set? IBM no longer ships this out and do not have a set. I have a burned copy, but would be nice to have the originals. I'd like to send my copies offsite for DR once i get an original set. Thanks! (2 Replies)
Discussion started by: slacker
2 Replies

2. UNIX for Dummies Questions & Answers

Order sorting

How do you sort text in order using sed? :confused: For example 01 B D A C to 01 ABCD (3 Replies)
Discussion started by: evoGage
3 Replies

3. Shell Programming and Scripting

Printing the invert of the last field of awk

in csh set x = "/home/usr/dir1/file1" if i do: echo $x | awk -F\/ '{print $NF}' will result to: "file1" how do i invert the output to: "/home/usr/dir1" :confused: (2 Replies)
Discussion started by: jehrome_rando
2 Replies

4. Shell Programming and Scripting

Invert Matrix of Data - Perl

I have columnar data in arrays perl, Example - @a = (1,2,3); @array1 = (A,B,C); @array2 = (D,E,F); @array3 = (I,R,T); I want the data to be formatted and printed as 1 A D I 2 B E F 3 C F T and so on... (8 Replies)
Discussion started by: dinjo_jo
8 Replies

5. Shell Programming and Scripting

Change order

Good evening I have a file as below and want to change the order, as in the second column, sed awk Pearl Thanks aaaaaaaaaa bbbbbbbbb cccccccc aaaaaaaaaa bbbbbbbbb cccccccc aaaaaaaaaa cccccccc bbbbbbbbb aaaaaaaaaa cccccccc bbbbbbbbb (8 Replies)
Discussion started by: Novice-
8 Replies

6. Ubuntu

Boot order?

Hi I have Ubuntu 10.10 installed. I want to change boot order. Can anyone tell where is menu.lst file located. I searched it but didn't get it. Please tell me what file I need to edit for same? (3 Replies)
Discussion started by: nixhead
3 Replies

7. Shell Programming and Scripting

Column not in order

Hi, I was trying to have an output as below : 1 | 2 | 3 aaa | bbb | ccc | ccc | ccc ... (2 Replies)
Discussion started by: scottralf
2 Replies

8. Shell Programming and Scripting

Using grep or something similar to invert search.

Hi guys, I have a script in which it simply do a grep of strings for the var/adm/messages file: NEWDATE=`TZ=GMT+1 date +%b" "%d" "%H` getalarm1=`grep "sent to primary BE" /var/adm/messages* | grep "$NEWDATE" | wc -l` getalarm2=`grep "CC-Request-Type 3 received in state Idle"... (5 Replies)
Discussion started by: matcam79
5 Replies

9. UNIX for Dummies Questions & Answers

Increasing order

Hi , I have around 1000000 odd lines in a file in random order. The file looks like this: >string102 >string10437183 >string514 >string10435771 >string10437259 >string1049931 >string1342 I want to arrange it in increasing order: >string102 >string514 >string1342... (3 Replies)
Discussion started by: qwerty193
3 Replies

10. UNIX for Beginners Questions & Answers

Order by 1

select to_char(cre_on, 'ddmm hh24'), proc_flg, count(*) from ib_prd.tb_ibmh_msg_log where message_type = 'DECHECK_OUT' and cre_on > to_date('27/08/2016 00:00:00', 'dd/MM/yyyy hh24:mi:ss') group by to_char(cre_on, 'ddmm hh24'), proc_flg order by 1; 1) what does order by 1 means 2) group by... (1 Reply)
Discussion started by: houmingc
1 Replies
qsort(3C)						   Standard C Library Functions 						 qsort(3C)

NAME
qsort - quick sort SYNOPSIS
#include <stdlib.h> void qsort(void *base, size_t nel, size_t width, int (*compar)(const void *, const void *)); DESCRIPTION
The qsort() function is an implementation of the quick-sort algorithm. It sorts a table of data in place. The contents of the table are sorted in ascending order according to the user-supplied comparison function. The base argument points to the element at the base of the table. The nel argument is the number of elements in the table. The width argument specifies the size of each element in bytes. The compar argument is the name of the comparison function, which is called with two arguments that point to the elements being compared. The function must return an integer less than, equal to, or greater than zero to indicate if the first argument is to be considered less than, equal to, or greater than the second argument. The contents of the table are sorted in ascending order according to the user supplied comparison function. USAGE
The qsort() function safely allows concurrent access by multiple threads to disjoint data, such as overlapping subtrees or tables. EXAMPLES
Example 1 Program sorts. The following program sorts a simple array: #include <stdlib.h> #include <stdio.h> static int intcompare(const void *p1, const void *p2) { int i = *((int *)p1); int j = *((int *)p2); if (i > j) return(1); if (i < j) return (-1); return(0); } int main() { int i; int a[10] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; size_t nelems = sizeof (a) / sizeof (int); qsort((void *)a, nelems, sizeof (int), intcompare); for (i = 0; i < nelems; i++) { (void) printf("%d ", a[i]); } (void) printf(" "); return(0); } ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
sort(1), bsearch(3C), lsearch(3C), string(3C), attributes(5), standards(5) NOTES
The comparison function need not compare every byte, so arbitrary data may be contained in the elements in addition to the values being compared. The relative order in the output of two items that compare as equal is unpredictable. SunOS 5.11 6 Dec 2004 qsort(3C)
All times are GMT -4. The time now is 04:12 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy