के लिए अधिकतम स्वीकार्य मान ढूँढना मैं एक मर्ज सॉर्ट को कार्यान्वित कर रहा हूं जो T
प्रकार की सरणी को सॉर्ट करेगा। मेरे merge
विधि में, एल्गोरिदम बाएं और दाएं सूची के अंतिम तत्व के लिए कॉल करता है सकारात्मक अनंतता। मैं दिए गए डेटा प्रकार को अधिकतम मूल्य कैसे प्राप्त कर सकता हूं?जेनेरिक प्रकार टी
fn merge<T: PartialOrd + Copy + std::fmt::Debug>(p: usize, q: usize, r: usize, array: &mut Vec<T>) {
let left_size: usize = q - p;
let right_size: usize = r - q;
let mut left: Vec<T> = Vec::new();
let mut right: Vec<T> = Vec::new();
for i in 0..left_size {
left.push(array[p + i]);
}
for i in 0..right_size {
right.push(array[q + i]);
}
left.push(T::max_value()); //where I would put the max value
right.push(T::max_value()); //where I would put the max value
let mut i: usize = 0;
let mut j: usize = 0;
for k in p..r {
if left[i] <= right[j] {
array[k] = left[i];
i += 1;
} else {
array[k] = right[j];
j += 1;
}
}
}
'सरणी: और mut Vec' - यह ** ** ** "सरणी" नहीं है। एक सरणी का आकार संकलन समय पर जाना जाता है। यह भी देखें [फ़ंक्शन तर्क के रूप में स्ट्रिंग (और स्ट्रिंग), वीईसी (और वीईसी) या बॉक्स (और बॉक्स) के संदर्भ को स्वीकार करने के लिए क्यों निराश किया गया है?] (Https://stackoverflow.com/q/40006219/155423)। –
Shepmaster
एफडब्ल्यूआईडब्ल्यू, इस कोड के साथ बहुत कम गैर-मूर्खतापूर्ण बिंदु हैं। आप [कोड कोड पर अपना कामकाजी कोड पोस्ट करना] पर विचार करना चाह सकते हैं (https://codereview.meta.stackexchange.com/questions/5777/a-guide-to-code-review-for-stack-overflow-users)। – Shepmaster