Server IP : 172.16.15.8 / Your IP : 18.219.207.115 Web Server : Apache System : Linux zeus.vwu.edu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Wed Nov 6 14:29:02 UTC 2024 x86_64 User : apache ( 48) PHP Version : 7.2.24 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0705) : /home/amjamgochian/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
// for assignment 4 // add selection sort // pg 137 // ADT - lists: array of items with variable length // read strings from a file and put them in the list; then output the strings // #include <iostream> using namespace std; const int MAX = 50; class List { int data[MAX]; // use string in hw 4. int length; public: List() { length = 0; } int Length() // could put const here but don't have to. { return length; } void Insert(int item) { data[length] = item; length ++; // transformer insert. } void Print() const { for(int i=0; i<length; i++) cout << data[i] << " "; cout << "\n"; } // sequential search pg 139. - primary search method bool IsPresent(int item) const { bool found = false; for(int i=0; i<length && !found; i++) if(data[i] == item) found = true; return found; } void SelectionSort_R() { int temp; int passCount; int maxIndex; for(passCount=0; passCount<length-1; passCount ++) { maxIndex = passCount; for(int k=passCount+1; k<length; k++) { if(data[maxIndex] < data[k]) maxIndex = k; } temp = data[maxIndex]; // swap. data[maxIndex] = data[passCount]; data[passCount] = temp; } } void SelectionSort() { int temp, passCount, minIndex; for(passCount=0; passCount<length-1; passCount++) { minIndex = passCount; for(int k=passCount+1; k<length; k++) { if( data[minIndex] > data[k] ) minIndex = k; } temp = data[minIndex]; data[minIndex] = data[passCount]; data[passCount] = temp; } } }; int main() { List real; // read the data in pg 138. int z; cin >> z; while(cin) { real.Insert(z); cin >> z; } cout << "Before sort: "; real.Print(); cout << "Ascending order - "; real.SelectionSort(); real.Print(); cout << "Descending order - "; real.SelectionSort_R(); real.Print(); return 0; }