কম্পিউটার টিউটোরিয়াল

পাইথনে অ্যারে গ্রুপ অনুযায়ী উল্টে ফেলার প্রোগ্রাম

এখানে একটি ইউজার ইনপুট অ্যারে এবং গ্রুপের আকার ব্যবহার করা হয়েছে। গ্রুপের আকার অনুযায়ী সাবঅ্যারে তৈরি করে সেগুলো উল্টে ফেলা হয়েছে। যদি গ্রুপের আকার (p) অ্যারের আকার (n)-এর গুণিতক না হয়, তবে শেষ গ্রুপে p-এর চেয়ে কম উপাদান থাকবে এবং বাকি সব উল্টে ফেলা হবে। যদি p=1 হয় তবে অ্যারে অপরিবর্তিত থাকে, যদি p>=n হয় তবে পুরো অ্যারে উল্টে যাবে।

অ্যালগরিদম

Revarray(A,n,p) /* A হলো ইন্টিজার অ্যারে, n হলো অ্যারের আকার এবং প্রতিটি সাব-অ্যারে আকার p দিয়ে শুরু থেকে উল্টে ফেলা */
ধাপ ১: i হলো লুপ কন্ট্রোল ভেরিয়েবল যা ০ দিয়ে আরম্ভ।
ধাপ ২: while লুপ দিয়ে i, n-এর চেয়ে ছোট কিনা যাচাই। সত্য হলে
ধাপ ২.১: L=i /* বাম সাবঅ্যারে
ধাপ ২.২: R=min(i+p-1, n-1) /* ডান সাবঅ্যারে
ধাপ ২.৩: while লুপ দিয়ে L, R-এর চেয়ে ছোট কিনা যাচাই। হ্যাঁ হলে
ধাপ ২.৩.১: বাম সাবঅ্যারে A(L) ও ডান সাবঅ্যারে A(R) স্ব্যাপ করুন।
ধাপ ২.৩.২: L ১ বাড়ান।
ধাপ ২.৩.৩: R ১ কদম পিছিয়ে যান।
ধাপ ২.৪: End While
ধাপ ২.৫: i = i + p
ধাপ ৩: End While
ধাপ ৪: Stop

উদাহরণ কোড

# অ্যারে গ্রুপ অনুযায়ী উল্টে ফেলা
def arrayreverse(A, n, p):
    i = 0
    while(i < n):
        L = i
        R = min(i + p - 1, n - 1)
        while (L < R):
            A[L], A[R] = A[R], A[L]
            L += 1
            R -= 1
        i += p

# ড্রাইভার কোড
# অ্যারেতে ডেটা ইনসার্ট
A = list()
n = int(input("অ্যারের আকার ::"))
print("সংখ্যা দিন ::")
for i in range(int(n)):
    k = int(input(""))
    A.append(int(k))
p = int(input("গ্রুপের আকার ::"))
arrayreverse(A, n, p)
for i in range(0, n):
    print(A[i], end=" ")

আউটপুট

অ্যারের আকার ::6
সংখ্যা ::
11 22 33 44 55 66
গ্রুপের আকার ::2
22 11 44 33 66 55
  1. অ্যারে রিভার্স করার C প্রোগ্রাম

  2. পাইথনে 'নাইস' জোড়া वाले সাবসিকোয়েন্সের ম্যাক্সিমাম আকার বের করা

  3. অ্যারে-এ ইনভারশন কাউন্ট করার পাইথন প্রোগ্রাম

  4. অ্যারে রোটেশনের পাইথন প্রোগ্রাম