Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में दिए गए कार्टेशियन पॉइंट्स के सेट को पोलर एंगल के आधार पर सॉर्ट करना


मान लीजिए हमारे पास points नामक लिस्ट में कार्टेशियन पॉइंट्स का एक सेट है। हमें उन्हें उनके पोलर एंगल के आधार पर सॉर्ट करना है। पोलर एंगल 0 और 2*PI की रेंज में भिन्न होते हैं। यदि कुछ पॉइंट्स के समान पोलर एंगल हैं, तो उन्हें उस पॉइंट की मूल बिंदु से दूरी के आधार पर व्यवस्थित करें।

उदाहरण के लिए, यदि इनपुट है 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)]।

समाधान दृष्टिकोण

प्रत्येक पॉइंट के लिए atan2(y, x) का उपयोग करके पोलर एंगल की गणना करें। यदि एंगल नेगेटिव है, तो 2*pi जोड़ें। (एंगल, दूरी^2) की टुपल द्वारा सॉर्ट करें।

  • एक कम्पेरेटर फंक्शन key() परिभाषित करें जो x लेता है।
  • atan = atan2(x[1], x[0]) की गणना करें।
  • यदि atan >= 0 तो (atan, x[1]^2+x[0]^2) लौटाएं अन्यथा (2*pi + atan, x[0]^2+x[1]^2)।
  • key() कम्पेरेटर फंक्शन का उपयोग करके points को सॉर्ट करें।

पायथन कार्यान्वयन

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))

इनपुट

[(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. पायथन प्रोग्राम: कॉकटेल सॉर्ट पायथन प्रोग्राम: कॉकटेल सॉर्ट

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक सूची दी गई है, हमें दी गई सूची पर बिटोनिक सॉर्ट करना है और सूची प्रदर्शित करनी है। कॉकटेल सॉर्ट यहां सॉर्ट बबल सॉर्ट की तरह होता है जहां पुनरावृत्ति दोनों दिशाओं में होती है। एल्गोरिदम सबसे पहले सरणी को बाएं से दाएं पार किय

  1. पायथन प्रोग्राम में सिलेक्शन सॉर्ट पायथन प्रोग्राम में सिलेक्शन सॉर्ट

    इस लेख में, हम पायथन 3.x में सिलेक्शन सॉर्ट और इसके कार्यान्वयन के बारे में सीखेंगे। या इससे पहले। सिलेक्शन सॉर्ट एल्गोरिदम में, एक ऐरे को अनसॉर्टेड पार्ट से न्यूनतम एलिमेंट को रिकर्सिवली ढूंढकर और इसे शुरुआत में इन्सर्ट करके सॉर्ट किया जाता है। दिए गए ऐरे पर सिलेक्शन सॉर्ट के निष्पादन के दौरान दो

  1. पायथन प्रोग्राम: सिलेक्शन सॉर्ट एल्गोरिदम पायथन प्रोग्राम: सिलेक्शन सॉर्ट एल्गोरिदम

    इस लेख में, हम पायथन 3.x या उससे पहले के संस्करण में सिलेक्शन सॉर्ट और इसके कार्यान्वयन के बारे में जानेंगे।सिलेक्शन सॉर्ट एल्गोरिदम में, एक सरणी को अनसॉर्टेड भाग से न्यूनतम तत्व को पुनरावर्ती रूप से ढूंढकर और इसे शुरुआत में डालकर सॉर्ट किया जाता है। दिए गए सरणी पर सिलेक्शन सॉर्ट के निष्पादन के दौरा