Немного кода на C#

Oct 01, 2008 21:25

Итак, что-то давно не писал...

Для разминки - небольшой пост про .NET. Итак, вот программа:

using System;
  class Program {
   static void Main(string[] args) {
   int[] arr = { 0, 1, 2, 3, 4, 5 };
   int[] parr = { 0, 0, 1, 1, 2, 2 };
   Array.Sort(arr, (i, j) => parr[i].CompareTo(parr[j]));
   Console.WriteLine(
   string.Join(", ",
     ( Read more... )

ит, fun, sample, пример, code, код, забавно, csharp, it, c#

Leave a comment

Comments 7

urielseptim October 1 2008, 21:23:16 UTC
У меня .NET нету и C# я не знаю, но попробую угадать:
---выведет массив в том же порядке, возможно, поменяв местами числа в некоторых парах из (0,1),(2,3),(4,5).

Если этот sort особо извращенный, то числа в каждой паре будет переставлены рандомно.

Угадал??????

Reply

canonizer October 2 2008, 19:20:39 UTC
Насчет перестановок - это следует из определения сортировки. Возникает 2й вопрос: почему возникают перестановки.
Для ответа на этот вопрос .NET не обязателен - доки есть в инете:)

Reply


_winnie October 2 2008, 07:03:09 UTC
Даёшь пример вывода и спойлеры! Не у всех VS 2008 под рукой.

Reply

canonizer October 2 2008, 19:21:12 UTC
См. другие комменты насчет примеров вывода. Вопрос - почему так происходит?

Reply


clevelus October 2 2008, 17:44:15 UTC
Ну вот Вам вывод:
1, 0, 3, 2, 5, 4
Press any key to continue...

А вот почему, догадаться не сложно ...

Reply

canonizer October 2 2008, 19:18:57 UTC
Ну да. Можно прикинуть, какой алгоритм используется (скорее всего) для сортировки в .NET, и вспомнить его свойства. На худой конец, можно зайти в MSDN и прочитать там комментарии к Array.Sort. Кстати, ответы принимаются в комментариях:)

Reply


_winnie October 6 2008, 14:51:22 UTC
Эм. Учитывая что в документации обязательно сообщают stable ( при сортировке по равным ключам ) сортировка или нет, то странно удивлятся что не-stable сортировка не-stable.

Reply


Leave a comment

Up