//Fig. 6.15: fig06_15.c
//Sorting an array's value in ascending order.
#include <stdio.h>
#define SIZE 10
// function main begins program execution
int main()
{
// initialize a
int a[ SIZE ] = { 2, 6, 4, 8, 10, 12, 89, 68, 45, 37};
int pass; // passes counter
size_t i; // comparisons counter
int hold; // temporary-location used to swap array elements
puts("Data items in original order");
//output original array
for( i = 0; i < SIZE; ++i) {
}// end for
//bubble sort
//loop to control number of passes
for( pass = 1; pass < SIZE; ++pass ) {
//loop to control number of comparisons per pass
for( i = 0; i <SIZE - 1; ++i){
//compare adjacent elements and swap them if first
//element is greater than second element
if ( a[ i ] > a[ i + 1 ] ){
hold = a[ i ];
a[ i ] = a[ i + 1 ];
a[ i + 1 ] = hold;
}//end if
}//end inner for
}//end outer for
puts("\nData items in ascending order");
//output sorted array
for( i = 0; i < SIZE; ++i ) {
}//end for
}//end main
Ly9GaWcuIDYuMTU6IGZpZzA2XzE1LmMKLy9Tb3J0aW5nIGFuIGFycmF5J3MgdmFsdWUgaW4gYXNjZW5kaW5nIG9yZGVyLgojaW5jbHVkZSA8c3RkaW8uaD4KI2RlZmluZSBTSVpFIDEwCgovLyBmdW5jdGlvbiBtYWluIGJlZ2lucyBwcm9ncmFtIGV4ZWN1dGlvbgppbnQgbWFpbigpCnsKLy8gaW5pdGlhbGl6ZSBhCmludCBhWyBTSVpFIF0gPSB7IDIsIDYsIDQsIDgsIDEwLCAxMiwgODksIDY4LCA0NSwgMzd9OwppbnQgcGFzczsgLy8gcGFzc2VzIGNvdW50ZXIKc2l6ZV90IGk7IC8vIGNvbXBhcmlzb25zIGNvdW50ZXIKaW50IGhvbGQ7IC8vIHRlbXBvcmFyeS1sb2NhdGlvbiB1c2VkIHRvIHN3YXAgYXJyYXkgZWxlbWVudHMKCnB1dHMoIkRhdGEgaXRlbXMgaW4gb3JpZ2luYWwgb3JkZXIiKTsKCi8vb3V0cHV0IG9yaWdpbmFsIGFycmF5CmZvciggaSA9IDA7IGkgPCBTSVpFOyArK2kpIHsKcHJpbnRmKCIlNGQiLCBhWyBpIF0pOwp9Ly8gZW5kIGZvcgoKLy9idWJibGUgc29ydAovL2xvb3AgdG8gY29udHJvbCBudW1iZXIgb2YgcGFzc2VzCmZvciggcGFzcyA9IDE7IHBhc3MgPCBTSVpFOyArK3Bhc3MgKSB7CgovL2xvb3AgdG8gY29udHJvbCBudW1iZXIgb2YgY29tcGFyaXNvbnMgcGVyIHBhc3MKZm9yKCBpID0gMDsgaSA8U0laRSAtIDE7ICsraSl7CgogICAgLy9jb21wYXJlIGFkamFjZW50IGVsZW1lbnRzIGFuZCBzd2FwIHRoZW0gaWYgZmlyc3QKICAgIC8vZWxlbWVudCBpcyBncmVhdGVyIHRoYW4gc2Vjb25kIGVsZW1lbnQKICAgIGlmICggYVsgaSBdID4gYVsgaSArIDEgXSApewoKICAgICAgICBob2xkID0gYVsgaSBdOwogICAgICAgIGFbIGkgXSA9IGFbIGkgKyAxIF07CiAgICAgICAgYVsgaSArIDEgXSA9IGhvbGQ7CiAgICB9Ly9lbmQgaWYKfS8vZW5kIGlubmVyIGZvcgp9Ly9lbmQgb3V0ZXIgZm9yCgpwdXRzKCJcbkRhdGEgaXRlbXMgaW4gYXNjZW5kaW5nIG9yZGVyIik7CgovL291dHB1dCBzb3J0ZWQgYXJyYXkKZm9yKCBpID0gMDsgaSA8IFNJWkU7ICsraSApIHsKcHJpbnRmKCAiJTRkIiwgYVsgaSBdICk7Cn0vL2VuZCBmb3IKCnB1dHMoIiIpOwp9Ly9lbmQgbWFpbg==