By Sergey Skudaev
Precondition: the function accepts an unsorted array and integer size that is the size of the array.
Post condition: Sorted array
The function looks for the smallest number and moves it to the head of the array
#include "stdafx.h" #include<iostream> using namespace std; int* SelectiveSort ( int size, int array [] ); void exchange (int array[], int a, int b); int main(int argc, char* argv[]) { int array[10]; int i=0; while (i < 10) { cout<<"Please enter a number."<<endl; cin>>array[i]; i++; } cout<<"Unsorted array:"<<endl; for(int k=0; k<10;k++) cout<<array[k]<<endl; //call the sorting function int* arr=SelectiveSort (i,array); cout<<"Sorted array:"<<endl; for(int n=0; n<10;n++) cout<<arr[n]<<endl; int hold = 1; cin >> hold; return 0; }
int* SelectiveSort (int size, int array[]) { int current = 0; int* pointer; pointer=array; while ( current < size ) { int smallest = current; int walker = current +1; while ( walker < size ) { if ( array [walker] < array [smallest] ) smallest = walker; walker ++; } exchange ( array, current, smallest ); current ++; } return pointer; } void exchange (int array[], int a, int b) { int temp=array[a]; array[a]=array[b]; array[b]=temp; }