944,171 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 17757
  • C++ RSS
Feb 26th, 2005
0

C++ Reorder random numbers

Expand Post »
I have random numbers such as
1 6 8 5 7 3 9 2 4

in a 1 dimensional array

what for loop do I use to reorder the numbers from 1 through 9?

thanks.
Similar Threads
Reputation Points: 11
Solved Threads: 0
Newbie Poster
dallin is offline Offline
14 posts
since Jan 2005
Feb 26th, 2005
0

Re: C++ Reorder random numbers

Why wouldn't you just assign the array members 1-9?
C++ Syntax (Toggle Plain Text)
  1. int i, array[9];
  2. for (i = 0; i < 9; ++i)
  3. {
  4. array[i] = i + 1;
  5. }
Team Colleague
Reputation Points: 2780
Solved Threads: 312
long time no c
Dave Sinkula is offline Offline
4,790 posts
since Apr 2004
Feb 26th, 2005
0

Re: C++ Reorder random numbers

You need a bubble sort algo.

You need to compare the first number to the second, and swap accordingly.

or...what you could do, which would be a lot easier

assign a temp array of the same size,
run a loop to find the smallest number
plop the result in the first element of the second array
set the value u just moves in the first array to zero
run the loop 9 time.

Reputation Points: 10
Solved Threads: 0
Light Poster
Gnome_101 is offline Offline
27 posts
since Apr 2004
Feb 26th, 2005
0

Re: C++ Reorder random numbers

>You need a bubble sort algo.
Please don't suggest bubble sort if other options are available.
Administrator
Reputation Points: 6442
Solved Threads: 1393
Bad Cop
Narue is offline Offline
11,807 posts
since Sep 2004
Feb 27th, 2005
0

Re: C++ Reorder random numbers

How about a shell-sort, this one has three nested for loops ...
[php]
// shell sort routine of n items in array[n]
void shellsort(int *array, int n)
{
int basectr, curctr, gapctr, gap, temp;

// reduce gap by 1/2 each loop
for(gap = n / 2; gap > 0; gap /= 2)
{
for(basectr = gap; basectr < n; basectr++)
{
for(curctr = basectr - gap; curctr >= 0; curctr -= gap)
{
gapctr = curctr + gap;
if (array[curctr] > array[gapctr])
{
temp = array[curctr];
array[curctr] = array[gapctr];
array[gapctr] = temp;
}
else break;
}
}
}
}
[/php]
Moderator
Reputation Points: 1333
Solved Threads: 1404
DaniWeb's Hypocrite
vegaseat is offline Offline
5,792 posts
since Oct 2004
Mar 1st, 2005
0

Re: C++ Reorder random numbers

Quote originally posted by Narue ...
>You need a bubble sort algo.
Please don't suggest bubble sort if other options are available.
Why? Learning a bubble sort is a good practice for learning C with arrays, and the such.

:rolleyes:
Reputation Points: 10
Solved Threads: 0
Light Poster
Gnome_101 is offline Offline
27 posts
since Apr 2004
Mar 1st, 2005
0

Re: C++ Reorder random numbers

>Why?
Because bubble sort is one of the worst sorting algorithms invented, promotes bad habits, and any of the other quadratic sorts are equally good practice. I personally believe that bubble sort should only be used as an example of how not to sort data.
Administrator
Reputation Points: 6442
Solved Threads: 1393
Bad Cop
Narue is offline Offline
11,807 posts
since Sep 2004
Mar 15th, 2005
0

Re: C++ Reorder random numbers

Quote originally posted by Narue ...
>Why?
Because bubble sort is one of the worst sorting algorithms invented, promotes bad habits, and any of the other quadratic sorts are equally good practice. I personally believe that bubble sort should only be used as an example of how not to sort data.
That is a good response, and as such, an understandble way of looking at a bad algo for getting the job done.

Sadly though, it is still taught, and without your explination as to why not to suggest this algo, was a little put off(your first post). As a comp sci student who has had years of C++ experience, it seemed like a smart way to start learning sorting. Is the speed of the algo is in question, or just he methodology? Time for sorting with numbers under the curve of the function for the algo (which I believe this appilcation would have been ok for) are minimal. We are talking milliseconds. understandbly when the dataset moves into the range of millions, there are other methods to improve overall performace time. As for the implementaton, I tend to agree with you as it tends messy.



Now that I can understand where you are coming from, I won't suggest it again.

Gnome
Reputation Points: 10
Solved Threads: 0
Light Poster
Gnome_101 is offline Offline
27 posts
since Apr 2004
Mar 15th, 2005
0

Re: C++ Reorder random numbers

how can you reorder numbers that are user input using selection sort in a 1 dimension array and output each element
Reputation Points: 11
Solved Threads: 0
Light Poster
hopeolicious is offline Offline
43 posts
since Oct 2004
Mar 15th, 2005
0

Re: C++ Reorder random numbers

>Sadly though, it is still taught
Indeed.

>Is the speed of the algo is in question
Yes, always. Bubble sort (as taught) does a lot of unnecessary work. It can be improved slightly, but that's almost always left as an exercise.

>understandbly when the dataset moves into the range of millions
Thousands. Bubble sort's growth is such that even sorting 10,000 records could be noticeably slow (less than that if the records are non-trivial). If you have millions of records then a suitable data structure or an nlogn sort would be more appropriate. The quadratic sorts are only useful for small data sets, or as components in implementing a more sophisticated algorithm.

>how can you reorder numbers that are user input using selection sort in a 1 dimension array and output each element
You've asked this same question four times if I recall correctly. I also recall answering it fully, with code examples. What's the problem?
Administrator
Reputation Points: 6442
Solved Threads: 1393
Bad Cop
Narue is offline Offline
11,807 posts
since Sep 2004

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: nid help in using dialog box
Next Thread in C++ Forum Timeline: Reading data into files





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC