Сортировка слиянием - C# (205635)
Формулировка задачи:
Помогите пожалуйса!
Ошибка: process is terminated due to stackoverflowexception
static List<string> M_sort(List<string> stm1) { if (stm1.Count-1 == 1) return stm1; int mid_point = stm1.Count / 2; return Merge(M_sort(stm1.Take(mid_point).ToList()), M_sort(stm1.Skip(mid_point).ToList())); } static List<string> Merge(List<string> mass1, List<string> mass2) { int a = 0, b = 0; List<string> merged = new List<string>(mass1.Count-1 + mass2.Count-1); for (int i = 0; i < mass1.Count-1 + mass2.Count-1; i++) { if (b < mass2.Count-1 && a < mass1.Count-1) if (mass1[a].CompareTo(mass2[b])==1 && b < mass2.Count-1) merged[i] = mass2[b++]; else merged[i] = mass1[a++]; else if (b < mass2.Count-1) merged[i] = mass2[b++]; else merged[i] = mass1[a++]; } return merged; }
static void Main(string[] args) { List<string> strings4 = new List<string>() { "dfs","sdgdfdffd", "sddsgdsggsda", "safdgggggggdggg", "324krklegn", "djhlfadal", "kdl", "jdin", "dva", "3 tri", "chetiri", "3 tai", "ytr 5", "krtj", "20202", "fkkrt6", "2 ejergijgd", "oornnr6", "romkenf569", "0", "1", "kfj 334 5993", "kkfoooo35", "ooit995", "oooit896", "oooit" }; List<string> stm=new List<string>(); stm = M_sort(strings4); }
Решение задачи: «Сортировка слиянием»
textual
Листинг программы
List<string> merged = new List<string>(mass1.Count + mass2.Count); for (int i = 0; i < merged.Count-1; i++)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д