radix sort using dynamic arrays class
May 21, 2014 at 9:54pm UTC
Hello, Here's what I'm trying to achieve.
- 1 dynamic array that will increase by one each time a node is added
- 1 dynamic array that will be used to store radix sort of the unsorted array
- Implement radix sort
I am working on the insertion into the unsorted array and I cannot get the correct value to be placed in the array.
radix.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#ifndef radix_H
#define radix_H
class radix {
private :
int unsorted_size ;
int sorted_size ;
int * unsorted_list ;
int * sorted_list ;
public :
radix ( ) ;
void zero_array ( int arry [ ] , int arry_size ) ;
int get_unsorted_size ( ) ;
int get_sorted_size ( ) ;
void print_list ( int arry [ ] , int arry_size ) ;
void insert_element ( int unsorted [ ] , int unsortedSize , int to_insert ) ;
int * get_unsorted_list ( ) ;
int * get_sorted_list ( ) ;
void set_unsorted_size ( int new_size ) ;
void set_sorted_size ( int new_size ) ;
} ;
#endif // radix_H
radix.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
#include <iostream>
#include "radix.h"
using namespace std ;
radix::radix ( ) {
unsorted_size = 0 ;
sorted_size = 0 ;
unsorted_list = new int [ unsorted_size ] ;
sorted_list = new int [ sorted_size ] ;
zero_array ( unsorted_list , unsorted_size ) ;
zero_array ( sorted_list , sorted_size ) ;
}
void radix::zero_array ( int arry [ ] , int arry_size ) {
for ( int i = 0 ; i < arry_size ; i ++ ) {
arry [ i ] = 0 ;
}
}
int radix::get_unsorted_size ( ) {
return unsorted_size ;
}
int radix::get_sorted_size ( ) {
return sorted_size ;
}
void radix::print_list ( int arry [ ] , int arry_size ) {
for ( int i = 0 ; i < arry_size ; i ++ ) {
cout << arry [ i ] << " " ;
}
}
int * radix::get_unsorted_list ( ) {
return unsorted_list ;
}
int * radix::get_sorted_list ( ) {
return sorted_list ;
}
void radix::insert_element ( int unsorted [ ] , int sortedSize , int to_insert ) {
if ( get_unsorted_size ( ) == 0 ) {
set_unsorted_size ( sortedSize + 1 ) ;
cout << get_unsorted_size ( ) << endl ;
unsorted = new int [ get_unsorted_size ( ) ] ;
unsorted [ 0 ] = to_insert ;
}
else {
}
}
void radix::set_unsorted_size ( int new_size ) {
unsorted_size = new_size ;
}
void radix::set_sorted_size ( int new_size ) {
sorted_size = new_size ;
}
It will probably take small steps but I hope to get this done at some point.
Topic archived. No new replies allowed.