लोभी एल्गोरिथ्म प्रोग्रामिङमा एक अप्टिमाइजेसन प्रविधि हो जुन Java प्रत्येक चरणमा पुन: भ्रमण वा भविष्यलाई विचार नगरी उत्तम समाधान चयन गरेर विशेषता हुन्छ। सम्पूर्ण राज्य स्पेसको जाँच गर्नुको सट्टा, यो एल्गोरिदमले सबैभन्दा राम्रो वर्तमान विकल्प छान्छ र आशा गर्दछ कि यसले विश्वव्यापी इष्टतम समाधानको नेतृत्व गर्नेछ।
कसरी लोभी एल्गोरिथ्म काम गर्दछ
-
चरण 1: प्रारम्भिक अवस्थाबाट सुरु गर्नुहोस्।
-
चरण 2: प्रत्येक चरणमा, एल्गोरिदमले मूल्याङ्कन प्रकार्यको आधारमा उपलब्ध विकल्पहरू मध्येबाट उत्तम विकल्प चयन गर्दछ।
-
चरण 3: एल्गोरिदम सबै भन्दा राम्रो विकल्प छनोट गरेर नयाँ स्थितिमा सर्छ।
-
चरण 4: समाप्ति शर्त पूरा नभएसम्म वा छनौट गर्नका लागि थप विकल्पहरू नभएसम्म प्रक्रिया जारी रहन्छ।
-
चरण 5: फेला परेको समाधान फिर्ता गर्नुहोस्।
लालची एल्गोरिथ्म को लाभ र हानि
फाइदा:
- सरलता: बुझ्न र कार्यान्वयन गर्न सजिलो।
- दक्षता: प्राय: केहि अन्य अनुकूलन एल्गोरिदमहरूको तुलनामा कम गणना समय र मेमोरी चाहिन्छ।
- सबोप्टिमल समस्याहरूको लागि आदर्श: समस्याहरूको लागि उपयुक्त जहाँ सबै सम्भावनाहरूलाई विचार गर्दा धेरै जटिल छ।
बेफाइदाहरू:
- कुनै विश्वव्यापी इष्टतम ग्यारेन्टी छैन: एल्गोरिथ्म विश्वव्यापी इष्टतम समाधान फेला पार्न बिना स्थानीय इष्टतम समाधानमा रोक्न सक्छ।
- दूरदर्शिताको अभाव: एल्गोरिदमले प्रायः अघिल्लो निर्णयहरूको नतिजालाई विचार गर्दैन।
उदाहरण र व्याख्या
लोभी एल्गोरिथ्मको एक सामान्य उदाहरण "Kth सबैभन्दा ठूलो तत्व" समस्या फेला पार्नु हो। यो एल्गोरिथ्मले कसरी काम गर्छ हेरौं:
import java.util.Arrays;
public class GreedyAlgorithmExample {
static int findKthLargest(int[] nums, int k) {
Arrays.sort(nums); // Sort the array
return nums[nums.length- k]; // Return the kth largest element
}
public static void main(String[] args) {
int[] nums = {3, 1, 2, 4, 5};
int k = 2;
int result = findKthLargest(nums, k);
System.out.println("The " + k + "th largest element is: " + result);
}
}
माथिको उदाहरणमा, हामी पूर्णांकहरूको एर्रेमा दोस्रो ठूलो तत्व फेला पार्न लोभी एल्गोरिदम प्रयोग गर्छौं। यो एल्गोरिदमले एरेलाई मात्र क्रमबद्ध गर्छ र kth सबैभन्दा ठूलो तत्व फर्काउँछ। यद्यपि यो विश्वव्यापी इष्टतम हुने ग्यारेन्टी छैन, यो यस समस्याको लागि अपेक्षाकृत राम्रो समाधान हो।