Сортировка слиянием - 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++)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д