परिशोधित विश्लेषण क्या है? और यह मुझे अपने कार्यक्रमों में सबसे खराब प्रदर्शन की गारंटी देने में कैसे मदद कर सकता है ?
मैं पढ़ रहा था कि निम्नलिखित तकनीकों से प्रोग्रामर को वर्स्ट-केस प्रदर्शन की गारंटी प्राप्त करने में मदद मिल सकती है (यानी मेरे अपने शब्दों में: गारंटी है कि किसी प्रोग्राम का रनिंग टाइम सबसे खराब कास्ट में चलने के समय से अधिक नहीं होगा):
- रैंडमाइज्ड एल्गोरिदम (उदाहरण के लिए क्विकॉर्ट एल्गोरिथम सबसे खराब स्थिति में द्विघात है, लेकिन बेतरतीब ढंग से इनपुट का आदेश देने से एक संभाव्यता की गारंटी मिलती है कि इसका चलने का समय रैखिक है)
- संचालन के अनुक्रम (हमारे विश्लेषण को ग्राहक द्वारा किए गए डेटा और संचालन के अनुक्रम दोनों को ध्यान में रखना चाहिए)
- परिशोधित विश्लेषण (प्रदर्शन की गारंटी प्रदान करने का एक और तरीका है, सभी परिचालनों की कुल लागत का पता लगाकर, परिचालनों की संख्या से विभाजित करके, लागत में संशोधन करना है। इस सेटिंग में, हम औसत लागत रखते हुए कुछ महंगे संचालन की अनुमति दे सकते हैं। कम परिचालन के। दूसरे शब्दों में, हम कुछ महंगे ऑपरेशनों की लागत को फैलाते हैं, जिनमें से प्रत्येक को बड़ी संख्या में सस्ती ऑपरेशनों में से एक को सौंपकर)
लेखक ने स्टैक के लिए सरणी डेटा संरचना को आकार देने के उपयोग का उल्लेख किया कि कैसे अमूर्त विश्लेषण प्राप्त करने के लिए, लेकिन मुझे अभी भी समझ में नहीं आता है कि एमॉर्टाइज़्ड विश्लेषण क्या है, और इसे वास्तव में कैसे लागू किया जा सकता है (डेटा संरचना? एल्गोरिथ्म?) सबसे बुरी तरह से प्राप्त करने के लिए। प्रदर्शन की गारंटी देता है