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

পাইথনে একটি সোয়্যাপ দিয়ে অ্যারে সোর্ট করা সম্ভব কিনা

একটি ইন্টিজার অ্যারে দেওয়া আছে। শুধু একটি সোয়্যাপ অপারেশন দিয়ে অ্যারেটি non-decreasing order-এ সর্ট করা সম্ভব কিনা যাচাই করুন।

উদাহরণ

ইনপুট: input_list = [7, 8, 12, 10, 11, 9]

আউটপুট: Can be done

অ্যালগরিদম

  1. অ্যারের কপি বানিয়ে সর্ট করুন।
  2. মূল ও সর্টেড অ্যারে তুলনা করুন।
  3. যদি ০ বা ২টি জায়গায় পার্থক্য থাকে, তবে এক সোয়্যাপে সর্ট সম্ভব।

উদাহরণ কোড

from copy import deepcopy

def solve(input_list):
    temp_list = deepcopy(input_list)
    temp_list.sort()
    swap_count = 0
    for i in range(len(input_list)):
        if input_list[i] != temp_list[i]:
            swap_count += 1
    if swap_count == 0 or swap_count == 2:
        print("Can be done")
    else:
        print("Can't be done")

input_list = [7, 8, 12, 10, 11, 9]
solve(input_list)  # Output: Can be done

ইনপুট

[7, 8, 12, 10, 11, 9]

আউটপুট

Can be done
  1. পাইথনে একবার সোয়্যাপ দিয়ে লেক্সিকোগ্রাফিক্যালি সবচেয়ে ছোট স্ট্রিং খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে এক সোয়াপ দিয়ে প্রিভিয়াস পারমুটেশন বের করুন

  3. পাইথনে সর্টেড অ্যারেতে মেজরিটি এলিমেন্ট যাচাই করা

  4. পাইথনে সোর্টেড অ্যারে মার্জ (Merge Sorted Array)