Skip to content

Commit 54f187e

Browse files
authored
Create Sort Array 0-1-2.md
1 parent 2ea88d2 commit 54f187e

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

Sort Array 0-1-2.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
### [Back2Home](https://github.com/CodingWallah/Arrays-DSA-Coding-Questions) | [Go2Video](#)
2+
```java
3+
4+
//Best Solution 1 || Time = O(n) , Space = O(1)
5+
class Solution {
6+
public void sortColors(int[] nums) {
7+
int start = 0;
8+
int end = nums.length - 1;
9+
int ptr = 0, temp = 0;
10+
while (ptr <= end) {
11+
switch (nums[ptr]) {
12+
case 0: {
13+
temp = nums[start];
14+
nums[start] = nums[ptr];
15+
nums[ptr] = temp;
16+
start++;
17+
ptr++;
18+
break;
19+
}
20+
case 1:
21+
ptr++;
22+
break;
23+
case 2: {
24+
temp = nums[ptr];
25+
nums[ptr] = nums[end];
26+
nums[end] = temp;
27+
end--;
28+
break;
29+
}
30+
}
31+
}
32+
}
33+
}
34+
35+
```
36+
37+
```java
38+
39+
//Solution2 - time complexity = O(n) | space = O(1)
40+
class Solution {
41+
public void sortColors(int[] nums) {
42+
int i=0, cnt0 = 0, cnt1 = 0, cnt2 = 0;
43+
for (i = 0; i < nums.length; i++) {
44+
if(nums[i]==0)
45+
cnt0++;
46+
else if(nums[i]==1)
47+
cnt1++;
48+
else if(nums[i]==2)
49+
cnt2++;
50+
}
51+
52+
i = 0;
53+
54+
while (cnt0 > 0) {
55+
nums[i++] = 0;
56+
cnt0--;
57+
}
58+
59+
while (cnt1 > 0) {
60+
nums[i++] = 1;
61+
cnt1--;
62+
}
63+
64+
while (cnt2 > 0) {
65+
nums[i++] = 2;
66+
cnt2--;
67+
}
68+
}
69+
}
70+
71+
```
72+
73+
```java
74+
75+
//sol3 || Time = O(nlogn)
76+
class Solution {
77+
public void sortColors(int[] nums) {
78+
Arrays.sort(nums);
79+
}
80+
}
81+
```

0 commit comments

Comments
 (0)