এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখতে যাচ্ছি যেটি সমস্ত শূন্যকে সামনের দিকে এবং একটিকে অ্যারের শেষ দিকে নিয়ে যায়৷
এলোমেলো পূর্ণসংখ্যা সহ শূন্য এবং একের সাথে একটি অ্যারে দেওয়া হয়েছে। আমাদের সমস্ত শূন্যগুলিকে শুরু করতে এবং অ্যারের শেষ পর্যন্ত সরাতে হবে। আসুন একটি উদাহরণ দেখি।
ইনপুট
arr = [4, 5, 1, 1, 0, 0, 2, 0, 3, 1, 0, 1]
আউটপুট
0 0 0 0 4 5 2 3 1 1 1 1
অ্যালগরিদম
-
অ্যারে শুরু করুন৷
৷ -
একটি সূচী শুরু করুন 1.
-
প্রদত্ত অ্যারের উপর পুনরাবৃত্তি করুন৷
-
যদি বর্তমান উপাদানটি শূন্য না হয়, তাহলে বর্তমান উপাদানের সাথে সূচকে মান আপডেট করুন।
-
সূচক বাড়ান।
-
-
একটি লুপ লিখুন যা উপরের সূচী থেকে n এ পুনরাবৃত্তি করে
-
1.-এ সমস্ত উপাদান আপডেট করুন
-
-
একইভাবে, 0 এর জন্য করুন . সূচী বাড়ানোর পরিবর্তে, অ্যারের সামনে সমস্ত শূন্য সরানোর জন্য এটি হ্রাস করুন৷
বাস্তবায়ন
C++
-এ উপরের অ্যালগরিদমের বাস্তবায়ন নিচে দেওয়া হল#include <bits/stdc++.h>
using namespace std;
void update1And0Positions(int arr[], int n) {
int index = 0;
for (int i = 0; i < n; i++) {
if (arr[i] != 1) {
arr[index++] = arr[i];
}
}
while (index < n) {
arr[index++] = 1;
}
index = 0;
for (int i = n - 1; i >= 0; i--) {
if (arr[i] == 1) {
continue;
}
if (!index) {
index = i;
}
if (arr[i] != 0) {
arr[index--] = arr[i];
}
}
while (index >= 0) {
arr[index--] = 0;
}
}
int main() {
int arr[] = { 4, 5, 1, 1, 0, 0, 2, 0, 3, 1, 0, 1 };
int n = 12;
update1And0Positions(arr, n);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
} আউটপুট
আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
0 0 0 0 4 5 2 3 1 1 1 1