|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Hello,
I am using the below code to sort an array in ascending order, I also need to sort in descending order. I cannot get figure out what has to change to make this happen. If someone could *point me in the right direction, it would be appreciated. pLast is (comes from another function) the largest element in the array and paAry is the array being passed /* ==================== selectSort ==================== Sorts by selecting smallest element in unsorted portion of the array and exchanging it with element at the beginning of the unsorted list. Pre array must contain at least one item pLast is pointer to last element in array Post array rearranged smallest to largest */ void selectSort (int* pAry, int* pLast) { // Local Declarations int* pWalker; int* pSmallest; // Statements for (pWalker = pAry; pWalker < pLast; pWalker++) { pSmallest = smallest (pWalker, pLast); exchange (pWalker, pSmallest); } // for return; } // selectSort /* ==================== smallest ==================== Find smallest element starting at current pointer. Pre pAry points to first unsorted element Post smallest element identified and returned */ int* smallest (int* pAry, int* pLast) { // Local Declarations int* pLooker; int* pSmallest; // Statements for (pSmallest = pAry, pLooker = pAry + 1; pLooker <= pLast; pLooker++) if (*pLooker < *pSmallest) pSmallest = pLooker; return pSmallest; } // smallest /* ====================== exchange ==================== Given pointers to two array elements, exchange them Pre p1 & p2 are pointers to exchange values Post exchange is completed */ void exchange (int* p1, int* p2) { // Local Declarations int temp; // Statements temp = *p1; *p1 = *p2; *p2 = temp; return; } // exchange |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Clinto said:
> Hello, > > I am using the below code to sort an array in ascending order, I also > need to sort in descending order. By "ascending order" you mean "smallest first". Think about how the code determines which is smallest. Can you persuade it to change its mind? Perhaps by using an operator other than < ? Or maybe by switching a couple of operands around? -- Richard Heathfield <http://www.cpax.org.uk> Email: -http://www. +rjh@ Google users: <http://www.cpax.org.uk/prg/writings/googly.php> "Usenet is a strange place" - dmr 29 July 1999 |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
On Sun, 21 Oct 2007 00:10:27 -0700, Clinto wrote:
> Hello, > > I am using the below code to sort an array in ascending order, I also > need to sort in descending order. I cannot get figure out what has to > change to make this happen. If someone could *point me in the right > direction, it would be appreciated. Have you tried to do the most obvious thing to do, namely writing a greatest() function identical to smallest() except using a > in the place of a <, and using it instead of smallest()? If so, what was wrong with the results you got? If not, did you bother to try and figure out how those functions work? -- Army1987 (Replace "NOSPAM" with "email") A hamburger is better than nothing. Nothing is better than eternal happiness. Therefore, a hamburger is better than eternal happiness. |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
On Oct 21, 3:34 am, Army1987 <army1...@NOSPAM.it> wrote:
> On Sun, 21 Oct 2007 00:10:27 -0700, Clinto wrote: > > Hello, > > > I am using the below code to sort an array in ascending order, I also > > need to sort in descending order. I cannot get figure out what has to > > change to make this happen. If someone could *point me in the right > > direction, it would be appreciated. > > Have you tried to do the most obvious thing to do, namely writing > a greatest() function identical to smallest() except using a > in > the place of a <, and using it instead of smallest()? If so, what > was wrong with the results you got? If not, did you bother to try > and figure out how those functions work? > -- > Army1987 (Replace "NOSPAM" with "email") > A hamburger is better than nothing. > Nothing is better than eternal happiness. > Therefore, a hamburger is better than eternal happiness. I did make a new selectsort() function and similar function to smallest() which i called largest() and switched the <. I made changes in the selectsort function as well. (maybe that is my problem) My output was the same as what was passed to it. So I know I am doing somehthing incorrectly. I see what the function does to get the smallest items in the array and sort them in ascending order. I just do not quite understand how to change it to descending order. I am sure you can tell this is a homework assignment so I am not asking anyone to do it for me. I just need some as I have spent too many hours on it already. Thanks for all input, I will work with the suggestions given thus far. I will rewrite the functions later today. I have church this morning. |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
On Oct 21, 9:12 am, Clinto <myjunkcontai...@hotmail.com> wrote:
> On Oct 21, 3:34 am, Army1987 <army1...@NOSPAM.it> wrote: > > > > > > > On Sun, 21 Oct 2007 00:10:27 -0700, Clinto wrote: > > > Hello, > > > > I am using the below code to sort an array in ascending order, I also > > > need to sort in descending order. I cannot get figure out what has to > > > change to make this happen. If someone could *point me in the right > > > direction, it would be appreciated. > > > Have you tried to do the most obvious thing to do, namely writing > > a greatest() function identical to smallest() except using a > in > > the place of a <, and using it instead of smallest()? If so, what > > was wrong with the results you got? If not, did you bother to try > > and figure out how those functions work? > > -- > > Army1987 (Replace "NOSPAM" with "email") > > A hamburger is better than nothing. > > Nothing is better than eternal happiness. > > Therefore, a hamburger is better than eternal happiness. > > I did make a new selectsort() function and similar function to > smallest() which i called largest() and switched the <. I made changes > in the selectsort function as well. (maybe that is my problem) My > output was the same as what was passed to it. So I know I am doing > somehthing incorrectly. I see what the function does to get the > smallest items in the array and sort them in ascending order. I just > do not quite understand how to change it to descending order. I am > sure you can tell this is a homework assignment so I am not asking > anyone to do it for me. > > I just need some as I have spent too many hours on it already. > Thanks for all input, I will work with the suggestions given thus far. > I will rewrite the functions later today. I have church this morning.- Hide quoted text - > > - Show quoted text - I re-wrote the sort functions and finally got it to work: 5 numbers read. Your data sorted are: Ascending Original Descending 14 26 57 26 14 41 33 57 33 41 33 26 57 41 14 End of List Thanks for the assistance. |
|
![]() |
| Outils de la discussion | |
|
|