এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখতে যাচ্ছি যেটি সমস্ত শূন্যকে সামনের দিকে এবং একটিকে অ্যারের শেষ দিকে নিয়ে যায়৷
এলোমেলো পূর্ণসংখ্যা সহ শূন্য এবং একের সাথে একটি অ্যারে দেওয়া হয়েছে। আমাদের সমস্ত শূন্যগুলিকে শুরু করতে এবং অ্যারের শেষ পর্যন্ত সরাতে হবে। আসুন একটি উদাহরণ দেখি।
ইনপুট
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