यहाँ निकटतम पड़ोसी एल्गोरिथम का उपयोग करके ट्रैवलिंग सेल्समैन समस्या को लागू करने के लिए एक C++ प्रोग्राम है।
आवश्यक कार्य और छद्म कोड
एल्गोरिदम
आरंभ करें सी =0, लागत =1000 शुरू करें; जी [] [] प्रारंभ करें। फ़ंक्शन स्वैप () का उपयोग दो मानों x और y को स्वैप करने के लिए किया जाता है। फ़ंक्शन cal_sum() उस लागत की गणना करने के लिए जो इनपुट के रूप में सरणी a [] और सरणी का आकार लेती है। प्रारंभिक योग =0. i =0 से n के लिए s+=g[a[i %3]][a[(i+ 1) %3]] की गणना करें; अगर (लागत> s) लागत =s फ़ंक्शन क्रमपरिवर्तन () का उपयोग क्रमपरिवर्तन करने के लिए किया जाता है:यदि सरणी कॉल में एक तत्व है तो cal_sum ()। अन्य के लिए j =i से n स्वैप (a+i) के साथ (a + j) cal_sum(a+1,n) स्वैप (a+i) के साथ (a + j)End
उदाहरण कोड
#includeनेमस्पेस का उपयोग करना std;int c =0, cost =1000;int g[3][3 ]={{1, 2, 3}, {4, 5, 8}, {6, 7, 10}}; शून्य स्वैप (int *x, int *y) {int t; टी =* एक्स; * एक्स =* वाई; *y =t;}शून्य cal_sum(int *a, int n) { int i, s=0; के लिए (i =0; i <=n; i++) { s+=g[a[i %3]][a[(i+ 1) %3]]; } अगर (लागत> एस) {लागत =एस; }}शून्य परमिट (int *a,int i,int n) { int j, k; अगर (i ==n) { cal_sum (ए, एन); } और { के लिए (जे =आई; जे <=एन; जे ++) {स्वैप ((ए + आई), (ए + जे)); cal_sum(a+1,n); स्वैप ((ए + आई), (ए + जे)); } }}इंट मेन () { इंट आई, जे; इंट ए [] ={1,2,3}; परमिट (ए, 0,2); cout <<"न्यूनतम लागत:" <<लागत < आउटपुट
==का उपयोग करके str1 और str2 की तुलना करना, Res:0 ==का उपयोग करके str1 और str3 की तुलना करना, Res:1 तुलना () का उपयोग करके str1 और str2 की तुलना करना, Res:-1024 तुलना (), Res:0 का उपयोग करके str1 और str3 की तुलना करना।>