|
//pizza02.cpp //Authors: AOU ///////////////////////////////////////////////////////////////// // include files ///////////////////////////////////////////////////////////////// #include <iostream.h> #include <time.h> #include <stdlib.h> ///////////////////////////////////////////////////////////////// // prototypes ///////////////////////////////////////////////////////////////// void sortBubble(int array[], int low, int high); void displayArray(int array[], int low, int high); void displayArray2(int array[], int low, int high); int min1(int array[], int low, int high); ///////////////////////////////////////////////////////////////// // main ///////////////////////////////////////////////////////////////// void main(void) { int a[]={21, 12, 30, 19, 21, 69, 13, -1}; int n = sizeof(a)/sizeof(a[0]); cout << "n = " << n << endl; displayArray(a, 0, n-1); displayArray2(a, 0, n-1); int k = min1(a, 0, n-1); cout << "minimum value at " << k << " is " << a[k] << endl; // call here the min2 function int b[]={21, 12, 30, 19, 21, 69, 13}; int m = sizeof(b)/sizeof(b[0]); cout << "m = " << m << endl; displayArray(b, 0, m-1); displayArray2(b, 0, m-1); int p = min1(b, 0, m-1); cout << "minimum value at " << p << " is " << b[p] << endl; // call here the min2 function } ///////////////////////////////////////////////////////////////// // min1 to return the index of minimum value (non-recursive) ///////////////////////////////////////////////////////////////// int min1(int array[], int low, int high) { /* index of the minimum value? minYet = low compare value at minYet with every value in the list if a value is < value at minYet then copy index of that value to minYet return minYet */ /* minYet = low for i= low to high if array[i] < array[minYet] minYest = i return minYet */ int minYet = low; for (int i= low; i<=high; i++) if (array[i] < array[minYet]) minYet = i; return minYet; } ///////////////////////////////////////////////////////////////// // displayArray to display array elements (non-recursive) ///////////////////////////////////////////////////////////////// void displayArray(int array[], int low, int high) { for (int i=low; i<= high; i++) cout << array[i] << ' '; cout << endl; } ///////////////////////////////////////////////////////////////// // displayArray2 to display array elements (recursive) ///////////////////////////////////////////////////////////////// void displayArray2(int array[], int low, int high) { /* if only one element to be printed then print that element else print the fist element display the rest ----------------------- if low and high are the same print element at low else print element at low display (array, low+1, high) */ if (low == high) cout << array[low] << endl; else { cout << array[low] << ' '; displayArray2(array, low+1, high); } } ///////////////////////////////////////////////////////////////// // sortBubble to sort array elements (non-recursive) ///////////////////////////////////////////////////////////////// void sortBubble(int array[], int low, int high) { bool sorted; do { sorted = true; for (int i=low; i<high; i++) { if (array[i] > array[i+1]) { int temp = array[i]; array[i] = array[i+1]; array[i+1] = temp; sorted = false; } } } while (!sorted); } ///////////////////////////////////////////////////////////////// // Output ///////////////////////////////////////////////////////////////// /* n = 8 21 12 30 19 21 69 13 -1 21 12 30 19 21 69 13 -1 minimum value at 7 is -1 m = 7 21 12 30 19 21 69 13 21 12 30 19 21 69 13 minimum value at 1 is 12 Press any key to continue */ |