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

পাইথনে কার্টেশিয়ান পয়েন্টগুলো পোলার অ্যাঙ্গেল অনুযায়ী সর্ট করার প্রোগ্রাম

এক সেট কার্টেশিয়ান পয়েন্ট points দেওয়া আছে। পোলার অ্যাঙ্গেল (০ থেকে ২π) অনুযায়ী সর্ট করুন। একই অ্যাঙ্গেল হলে ওরিজিন থেকে দূরত্ব অনুযায়ী সাজান।

উদাহরণ

points = [(1,1), (1,-2),(-2,2),(5,4),(4,5),(2,3),(-3,4)]

আউটপুট: [(5, 4), (1, 1), (4, 5), (2, 3), (-3, 4), (-2, 2), (1, -2)]

এলগরিদম

  1. কমপারেটর key(x) সংজ্ঞায়িত করুন:
    • atan := atan2(y, x)
    • রিটার্ন (atan, x²+y²) যদি atan >= 0 অন্যথায় (2π+atan, x²+y²)
  2. sorted(points, key=key) রিটার্ন করুন।

পাইথন কোড

import math

def solve(points):
    def key(x):
        atan = math.atan2(x[1], x[0])
        return (atan, x[1]**2 + x[0]**2) if atan >= 0 else (2*math.pi + atan, x[0]**2 + x[1]**2)
    return sorted(points, key=key)

points = [(1,1), (1,-2),(-2,2),(5,4),(4,5),(2,3),(-3,4)]
print(solve(points))
# আউটপুট: [(5, 4), (1, 1), (4, 5), (2, 3), (-3, 4), (-2, 2), (1, -2)]

ইনপুট / আউটপুট

[(1,1), (1,-2),(-2,2),(5,4),(4,5),(2,3),(-3,4)]
[(5, 4), (1, 1), (4, 5), (2, 3), (-3, 4), (-2, 2), (1, -2)]
  1. হিপ সর্টের পাইথন প্রোগ্রাম

  2. ককটেইল সর্টের পাইথন প্রোগ্রাম

  3. পাইথনে সিলেকশন সর্ট (Selection Sort)

  4. পাইথন প্রোগ্রাম: সিলেকশন সোর্ট অ্যালগরিদম