Сортировка слиянием - C# (205635)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйса! Ошибка: process is terminated due to stackoverflowexception
Листинг программы
  1. static List<string> M_sort(List<string> stm1)
  2. {
  3. if (stm1.Count-1 == 1)
  4. return stm1;
  5. int mid_point = stm1.Count / 2;
  6. return Merge(M_sort(stm1.Take(mid_point).ToList()), M_sort(stm1.Skip(mid_point).ToList()));
  7. }
  8. static List<string> Merge(List<string> mass1, List<string> mass2)
  9. {
  10. int a = 0, b = 0;
  11. List<string> merged = new List<string>(mass1.Count-1 + mass2.Count-1);
  12. for (int i = 0; i < mass1.Count-1 + mass2.Count-1; i++)
  13. {
  14. if (b < mass2.Count-1 && a < mass1.Count-1)
  15. if (mass1[a].CompareTo(mass2[b])==1 && b < mass2.Count-1)
  16. merged[i] = mass2[b++];
  17. else
  18. merged[i] = mass1[a++];
  19. else
  20. if (b < mass2.Count-1)
  21. merged[i] = mass2[b++];
  22. else
  23. merged[i] = mass1[a++];
  24. }
  25. return merged;
  26. }
Листинг программы
  1. static void Main(string[] args)
  2. {
  3. 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" };
  4. List<string> stm=new List<string>();
  5. stm = M_sort(strings4);
  6. }

Решение задачи: «Сортировка слиянием»

textual
Листинг программы
  1. List<string> merged = new List<string>(mass1.Count + mass2.Count);
  2.             for (int i = 0; i < merged.Count-1; i++)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы