//Xinnuo Wanng CS1A Chapter 8 #10 Page.489
/*******************************************************************************
* Sort Arrays
* _____________________________________________________________________________
* The program uses two identical arrays of just eight integers, displays the
* first and second arrays, sorts the first array using bubble sort, sorts
* the other using selection sort, and print out the array contents after each
* pass of the sort.
* _____________________________________________________________________________
* Input
* num : The number
*
* ****************************************************************************/
#include <iostream>
using namespace std;
void bubble(int arr[], int size);
void selection (int arr2[],int size);
void swap(int &a, int & b);
void print (int arr[],int size);
int main()
{
int arr[]={27, 11, 99, 888, 666, 999,776, 0 };
int size = sizeof(arr)/sizeof(arr[0]);
int arr2[size];
for (int i = 0;i< size; i++)
{
arr2[i]= arr[i];
cout << arr[i]<<" ";
}
cout << endl;
bubble(arr, size);
print (arr,size);
cout << endl;
selection(arr2,size);
print (arr2,size);
cout << endl;
return 0;
}
void bubble(int arr[], int size)
{
for(int i = size-1;i > 0; i--)
{
for(int j = 0; j < i; j++)
{
if(arr[j]>arr[j+1])
{
swap(arr[j],arr[j+1]);
}
}
}
}
void selection (int arr2[],int size)
{
for (int start = 0; start < size; start++)
{
int minIndex = start;
for (int i = start +1; i< size; i ++)
{
if (arr2[i]< arr2[minIndex])
{
minIndex =i;
}
}
swap(arr2[minIndex], arr2[start] );
}
}
void print (int arr[],int size)
{
for(int i = 0; i< size; i++)
{
cout << arr[i]<<" ";
}
}
void swap (int &a, int & b)
{
int temp = a;
a=b;
b = temp;
}
Ly9YaW5udW8gV2FubmcgICAgICAgICAgICAgICAgQ1MxQSAgICAgICAgICAgICAgICAgICAgICAgIENoYXB0ZXIgOCAjMTAgUGFnZS40ODkKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogU29ydCBBcnJheXMKICogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KICogVGhlIHByb2dyYW0gdXNlcyB0d28gaWRlbnRpY2FsIGFycmF5cyBvZiBqdXN0IGVpZ2h0IGludGVnZXJzLCBkaXNwbGF5cyB0aGUgCiAqIGZpcnN0IGFuZCBzZWNvbmQgYXJyYXlzLCBzb3J0cyB0aGUgZmlyc3QgYXJyYXkgdXNpbmcgYnViYmxlIHNvcnQsIHNvcnRzIAogKiB0aGUgb3RoZXIgdXNpbmcgc2VsZWN0aW9uIHNvcnQsIGFuZCBwcmludCBvdXQgdGhlIGFycmF5IGNvbnRlbnRzIGFmdGVyIGVhY2ggCiAqIHBhc3Mgb2YgdGhlIHNvcnQuCiAqIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAqIElucHV0CiAqICAgIG51bSAgICA6IFRoZSBudW1iZXIKICogCiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdm9pZCBidWJibGUoaW50IGFycltdLCBpbnQgc2l6ZSk7CnZvaWQgc2VsZWN0aW9uIChpbnQgYXJyMltdLGludCBzaXplKTsKdm9pZCBzd2FwKGludCAmYSwgaW50ICYgYik7CnZvaWQgcHJpbnQgKGludCBhcnJbXSxpbnQgc2l6ZSk7CmludCBtYWluKCkgCnsKCWludCBhcnJbXT17MjcsIDExLCA5OSwgODg4LCA2NjYsIDk5OSw3NzYsIDAgfTsKCWludCBzaXplID0gc2l6ZW9mKGFycikvc2l6ZW9mKGFyclswXSk7CglpbnQgYXJyMltzaXplXTsKCWZvciAoaW50IGkgPSAwO2k8IHNpemU7IGkrKykKCXsKCSAgICAgYXJyMltpXT0gIGFycltpXTsKCSAgICAgY291dCA8PCBhcnJbaV08PCIgIjsKCX0KCWNvdXQgPDwgZW5kbDsKCWJ1YmJsZShhcnIsIHNpemUpOwoJcHJpbnQgKGFycixzaXplKTsKCWNvdXQgPDwgZW5kbDsKCXNlbGVjdGlvbihhcnIyLHNpemUpOwoJcHJpbnQgKGFycjIsc2l6ZSk7Cgljb3V0IDw8IGVuZGw7CglyZXR1cm4gMDsKfQp2b2lkIGJ1YmJsZShpbnQgYXJyW10sIGludCBzaXplKQp7Cglmb3IoaW50IGkgPSBzaXplLTE7aSA+IDA7IGktLSkKCXsKCQlmb3IoaW50IGogPSAwOyBqIDwgaTsgaisrKQoJCXsKCQkJaWYoYXJyW2pdPmFycltqKzFdKQoJCQl7CgkJCQlzd2FwKGFycltqXSxhcnJbaisxXSk7CgkJCX0KCQl9Cgl9Cn0Kdm9pZCBzZWxlY3Rpb24gKGludCBhcnIyW10saW50IHNpemUpCnsKCWZvciAoaW50IHN0YXJ0ID0gMDsgc3RhcnQgPCBzaXplOyBzdGFydCsrKQoJewoJCWludCBtaW5JbmRleCA9IHN0YXJ0OwoJCWZvciAoaW50IGkgPSBzdGFydCArMTsgaTwgc2l6ZTsgaSArKykKCQl7CgkJCWlmIChhcnIyW2ldPCBhcnIyW21pbkluZGV4XSkKCQkJewoJCQkJbWluSW5kZXggPWk7CgkJCX0KCQl9CgkJc3dhcChhcnIyW21pbkluZGV4XSwgYXJyMltzdGFydF0gKTsKCX0KfQp2b2lkIHByaW50IChpbnQgYXJyW10saW50IHNpemUpCnsKCWZvcihpbnQgaSA9IDA7IGk8IHNpemU7IGkrKykKCXsKCQljb3V0IDw8IGFycltpXTw8IiAiOwoJfQp9CnZvaWQgc3dhcCAoaW50ICZhLCBpbnQgJiBiKQp7CglpbnQgdGVtcCA9IGE7CglhPWI7CgliID0gdGVtcDsKfQ==