Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C++ (http://www.go4expert.com/forums/cpp/)
-   -   how to add a selection sort to this code? (http://www.go4expert.com/forums/add-selection-sort-code-t14921/)

chetoos 2Nov2008 00:38

how to add a selection sort to this code?
 
i want to add a selection sort to this code by the id_number and i have the selection code but i cant implement it to my code



Code:

#include <iostream>
#include <string>

using namespace std;

struct database {
  int id_number, age;
  float salary;
  string name;
};
void input_data(struct database*data_ptr)
{
  int i_tmp;
  float f_tmp;
  string s_tmp;
  cout<<"enter name:";
  cin >>s_tmp;data_ptr->name = s_tmp;
  cout << "enter id_number :";
  cin >> i_tmp;data_ptr->id_number = i_tmp;
  cout << "enter age :";
  cin >> i_tmp;data_ptr->age = i_tmp;
  cout << "enter salary:";
  cin >> f_tmp;data_ptr->salary = f_tmp;;
  cout<<endl;
}
void output_data(struct database*data_ptr)
{
  cout << "*********************************\n";
  cout << "name = " << data_ptr->name << "\n";
  cout << "id_num = " << data_ptr->id_number << "\n";
  cout << "age = " << data_ptr->age << "\n";
  cout << "salary = " << data_ptr->salary << "\n";
  cout << "*********************************\n";
}

int main()
{
  database*employee ;
  int n;
  cout<<"how many employees do you want to enter?";
  cin >> n ;
  employee = new database[n] ;
  for ( int i = 0 ; i  < n ; i++)
      input_data(employee+i);
  for ( int a = 0 ; a  < n ; a++)
      output_data(employee+a);
  return 0;
}




THE SELECTION SORT CODE IS:
Code:

void selectionSort(int[] list, int listLength)
 {int index;
int smallestIndex;
int minIndex;
int temp;
for (index = 0; index < listLength 1; index++) {smallestIndex = index;
for (minIndex = index + 1; minIndex < listLength; minIndex++)
if (list[minIndex] < list[smallestIndex])smallestIndex = minIndex;
temp = list[smallestIndex];
list[smallestIndex] = list[index];
list[index] = temp;
}
}


xpi0t0s 2Nov2008 16:13

Re: how to add a selection sort to this code?
 
The selection sort (looks more like bubble sort to me, but then I don't know what a "selection sort" is) sorts a list of integers. So you need to adapt it to take an array of employee rather than an array of int. So the first line will probably end up being something like
Code:

void selectionSort(employee[] list, int listLength)
So then you need to adapt the code to use list[x].id_number instead of just list[x], assuming of course you want to sort by id_number.
Then you'll need to add a call to selectionSort() somewhere in main().

xpi0t0s 2Nov2008 16:15

Re: how to add a selection sort to this code?
 
Sorry, I'm thinking in C++ (of employee being a class rather than a struct). Try instead:
Code:

void selectionSort(struct employee *list, int listLength)


All times are GMT +5.5. The time now is 18:26.