 # bubble_sort_array_of_integers_without_pointers_v1.c

May 19th, 2020
161
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. /*
2.
3.     bubble_sort_array_of_integers_without_pointers_v1.c
4.
5. To solve this task, we must use pointers, at least implicitly, covertly.
6.
7. In order for the sort function to change the given array,
8. we must give the function the address of the first member of the array
9. (this is pointer) and an integer n number of array members.
10.
11. So, we still use pointers.
12.
13. The pointer is arr and it is the address of the first element of the array.
14. Based on integer n, the function knows that starting from address arr
15. there are n integers next to each other.
16.
17. arr = & arr 
18.
19. The addresses of the other elements (integers) are
20.
21. arr + 1 = &arr
22. arr + 2 = &arr
23. ...
24. arr + i = &arr[i], (i goes from 0 to n-1)
25. ...
26. arr + n-1 = &arr[n-1]
27.
28. n is the ordinal number of the array element (going from 1 to n),
29.
30. and i is the index of the array element (going from 0 to n-1).
31.
32.
33.     You can find all my C programs at Dragan Milicev's pastebin:
34.
35.     https://pastebin.com/u/dmilicev
36.
37. */
38.
39. #include <stdio.h>
40.
41.
42. // Function to print array, n is number of elements in array arr[]
43. // text[] describes the shown array arr[]
44. void ShowArray(char text[],int arr[],int n)
45. {
46.     int i;
47.
48.     printf("%s",text);
49.     for(i=0;i<n;i++)
50.         printf("%5d", arr[i]);
51.
52.     printf("\n");
53. }
54.
55.
56. // function bubbleSort to sort the array in ascending order
57. void bubbleSort(int arr[], int n)
58. {
59.     int i, j, temp;
60.
61.     for (i = 0; i < n-1; i++)
62.         for (j = 0; j < n-i-1; j++)     // Last i elements are already in place
63.             if (arr[j] > arr[j+1])      // arr[j] < arr[j+1] for descending order
64.             {
65.                 temp = arr[j];
66.                 arr[j] = arr[j+1];
67.                 arr[j+1] = temp;
68.             }
69. }
70.
71.
72. // Main program to test above function
73. int main(void)
74. {
75.     int arr={5,2,-7,8,-3,1,9,3,7,1};    // array of 10 integers
76.     int n = sizeof(arr)/sizeof(arr); // a way to get n, number of elements in array arr[]
77.     int i;
78.
79.     printf("\n Array arr[] has n = %d integers. \n", n);
80.
81.     ShowArray("\n Unsorted array of integers is: \n\n",arr,n);
82.
83.     bubbleSort(arr,n);
84.
85.     ShowArray("\n Array sorted by bubble sort is: \n\n",arr,n);
86.
87.
88.     return 0;
89. }