C++ bubble sort.


 
Thread Tools Search this Thread
Top Forums Programming C++ bubble sort.
# 1  
Old 02-13-2011
Bug C++ bubble sort.

In regards to the for loop with '&& flag' I think I see the intended logic. If there was a transaction keep looping until the end of the array otherwise exit. Well it compiles but it does not work as I see the logic. I really like this routine much better than any others I have seen and would like to keep it. Is it possible my compiler treats the '&&' differently than the compiler the author used? Without rewriting it to extensively is there something that can be done?

Thank you kindly

Code:
void bubblesort(vector<int> *bb) {
int i,j,temp,flag=1;
int bbLength = bb->size();

  for(i=1;(i<=bbLength) && flag; i++) {
  flag=0;
    for (j=0; j < (bbLength -1); j++) {
      if (bb[j+1] > bb[j]) {
        temp = bb->at(j);
        bb->at(j) = bb->at(j+1);
        bb->at(j+1) = temp;
        flag = 1;
      }
    }
  }
}

# 2  
Old 02-13-2011
What exactly is not working for you? A concrete example work help understand what problem you are encountering.
# 3  
Old 02-13-2011
If one were to compile the example and run it in a debugger like the Eclipse IDE that I use on Fedora you will see the 'for' loop in question only runs one time all the time. Clearly that is not the intended logic and I know almost factually that the use of "&&" is an error although I'm not sure quite yet how to fix it.

Thanks! Smilie
# 4  
Old 02-14-2011
Where did you get this example from? Can you provide a copy of your test program?
# 5  
Old 02-14-2011
This is the extent of what I have put together at the moment. It needs work but it should give you a good idea of what I'm aiming for. Thanks for your interest in this.

Code:
#include <iostream>
#include <vector>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

using namespace std;

void bubblesort(vector<int> *bb) {
int i,j,temp,flag=1;
int bbLength = bb->size();

  for(i=1;(i<=bbLength) && flag; i++) {
  flag=0;
    for (j=0; j < (bbLength -1); j++) {
      if (bb[j+1] > bb[j]) {
        temp = bb->at(j);
        bb->at(j) = bb->at(j+1);
        bb->at(j+1) = temp;
        flag = 1;
      }
    }
  }
}

int main() {

vector<int> random;
random.reserve(21);

srand(time(NULL)); //Seed

  for(int a=0;a<21;a++){
  random[a] = rand() % 20 + 1;
  }
  for(int a=0;a<random.size();a++) {
  cout << random[a] << endl;
  }

  //I really wrote all this crap to do this with it
  bubblesort(&random);

  for(int a=0;a<random.size();a++) {
  cout << random[a] << endl;
  }
return 0;
}

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Use sort to sort numerical column

How to sort the following output based on lowest to highest BE? The following sort does not work. $ sort -t. -k1,1n -k2,2n bfd.txt BE31.116 0s 0s DOWN DAMP BE31.116 0s 0s DOWN DAMP BE31.117 0s 0s ... (7 Replies)
Discussion started by: sand1234
7 Replies

2. UNIX for Beginners Questions & Answers

Difference of Sort -n -k2 -k3 & Sort -n -k2,3

Hi, Could anyone kindly show me a link or explain the difference between sort -n -k2 -k3 & sort -n -k2,3 Also, if I like to remove the row with repetition at both $2 and $3, Can I safely use sort -u -k2 -k3 Example; 100 20 30 100 20 30 So, both $2 and $3 are same and I... (2 Replies)
Discussion started by: Indra2011
2 Replies

3. Shell Programming and Scripting

Sort help: How to sort collected 'file list' by date stamp :

Hi Experts, I have a filelist collected from another server , now want to sort the output using date/time stamp filed. - Filed 6, 7,8 are showing the date/time/stamp. Here is the input: #---------------------------------------------------------------------- -rw------- 1 root ... (3 Replies)
Discussion started by: rveri
3 Replies

4. Shell Programming and Scripting

Help with sort word and general numeric sort at the same time

Input file: 100%ABC2 3.44E-12 USA A2M%H02579 0E0 UK 100%ABC2 5.34E-8 UK 100%ABC2 3.25E-12 USA A2M%H02579 5E-45 UK Output file: 100%ABC2 3.44E-12 USA 100%ABC2 3.25E-12 USA 100%ABC2 5.34E-8 UK A2M%H02579 0E0 UK A2M%H02579 5E-45 UK Code try: sort -k1,1 -g -k2 -r input.txt... (2 Replies)
Discussion started by: perl_beginner
2 Replies

5. Shell Programming and Scripting

Alternate to sort --random-sort

sort --random-sort The full command is path=`find /testdir -maxdepth 1 -mindepth 1 -type d | ***Some sort of sort function*** | head -1` I have a list I want to randomly sort. It works fine in ubuntu but on a 'osx lion' sort dosen't have the --random-sort option. I don't want to... (5 Replies)
Discussion started by: digitalviking
5 Replies

6. UNIX for Advanced & Expert Users

Script to sort the files and append the extension .sort to the sorted version of the file

Hello all - I am to this forum and fairly new in learning unix and finding some difficulty in preparing a small shell script. I am trying to make script to sort all the files given by user as input (either the exact full name of the file or say the files matching the criteria like all files... (3 Replies)
Discussion started by: pankaj80
3 Replies

7. Shell Programming and Scripting

How to Sort Floating Numbers Using the Sort Command?

Hi to all. I'm trying to sort this with the Unix command sort. user1:12345678:3.5:2.5:8:1:2:3 user2:12345679:4.5:3.5:8:1:3:2 user3:12345687:5.5:2.5:6:1:3:2 user4:12345670:5.5:2.5:5:3:2:1 user5:12345671:2.5:5.5:7:2:3:1 I need to get this: user3:12345687:5.5:2.5:6:1:3:2... (7 Replies)
Discussion started by: daniel.gbaena
7 Replies

8. Shell Programming and Scripting

Can someone explain a bubble sort in Krn script to me?

See topic. I need to understand how it works before i start to work on a program anyone have any resources or the time to explain it thanks. (5 Replies)
Discussion started by: bluesilo
5 Replies

9. What is on Your Mind?

Cool YouTube Video: Here Comes Another Bubble - The Richter Scales!

You will like this :) fi4fzvQ6I-o (2 Replies)
Discussion started by: Neo
2 Replies
Login or Register to Ask a Question