-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbubble_sort_modified.cpp
More file actions
71 lines (56 loc) · 937 Bytes
/
bubble_sort_modified.cpp
File metadata and controls
71 lines (56 loc) · 937 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include<bits/stdc++.h>
using namespace std;
/* Modified Bubble Sort- Given an array of the integer,
return sorted array
used flag swapped here, if array is already sorted(best case scenario),
so no exchange will be done and it will give O(n) time complexity.
i/p - 5
1 3 5 7 4
o/p- 1 3 4 5 7
*/
void swap(int &i, int &j)
{
int temp;
temp = i;
i = j;
j = temp;
}
void bubbleSort(int arr[], int n)
{
bool swapped;
for(int i=0; i< n-1; ++i)
{
swapped = false;
for(int j=0;j< n-i-1; ++j)
{
if(arr[j] > arr[j+1])
{
swap(arr[j], arr[j+1]);
swapped = true;
}
}
if(!swapped)
break;
}
//printing sorted array
for(int k=0;k<n;++k)
{
cout<<arr[k]<<" ";
}
}
int main()
{
#ifndef ONLINE_JUDGExl
freopen("inputf.in","r",stdin);
freopen("outputf.out","w",stdout);
#endif
int n;
cin>>n;
int arr[n];
for(int i=0;i<n;++i)
{
cin>>arr[i];
}
bubbleSort(arr,n);
return 0;
}