Чи можемо ми отримати відсортований список із відсортованої матриці в


9

Я збентежений. Я хочу довести, що проблема сортування an від n матриця, тобто рядки та стовпці у порядку зростання є Ω(n2logn). Я поступаю, припускаючи, що це можна зробити швидше, ніжn2logn і спробувати порушити log(m!) нижня межа для порівнянь, необхідних для сортування m елементів. У мене є дві суперечливі відповіді:

  1. ми можемо отримати відсортований список n2 елементи з відсортованої матриці в O(n2) /math/298191/lower-bound-for-matrix-sorting/298199?iemail=1#298199
  2. ви не можете отримати відсортований список з матриці швидше, ніж /programming/4279524/how-to-sort-amxn-matrix-which-has- всі-його-m-рядки-відсортовані-і-n-стовпці-відсортованіΩ(n2log(n))

Який з них правильний?


6
Як осторонь, це мене дратує, коли ми бачимо твердження, що "сортування - ", але вони не визначають вхідну модель та модель обчислення. Порівняльне сортування - . Сортування, як правило, може бути швидшим, ніж це, наприклад, для рядків (якщо - загальна довжина вводу) або цілих чисел (у певних моделях обчислень, які дозволяють арифметичні операції постійного цілого часу). Ω(nlogn)Ω(nlogn)n
Девід Еппштейн

3
Щоб бути ще педантичнішим: сортування порівняння - це не , оскільки сортування порівняння не є функцією від до . Для сортування потрібен час у будь-якій моделі двійкових рішень (не лише порівняннях). Ω(nlogn)RRΩ(nlogn)
Jeffε

Відповіді:


15

Нижня межа правильна (2) - ви не можете зробити це краще, ніж і (1) звичайно неправильно. Давайте спершу визначимо, що таке сортована матриця - це матриця, де елементи в кожному рядку та стовпці сортуються у порядку зростання.Ω(n2logn)

Зараз легко перевірити, що кожна діагональ може містити елементи, які є в будь-якому довільному порядку - потрібно просто зробити їх досить великими. Зокрема, сортування матриці передбачає сортування кожної з цих діагоналей. й діагональний має запис, і як такоїможливе замовлення. Як така, впорядкована матриця могла б визначити принаймні різні замовлення. Тепер легко перевірити, що , маючи на увазі, що в моделі порівняння (і як вказує Джефф нижче, у будь-якій моделі бінарного дерева рішень) принаймні це нижня межа на час сортування.iii!X=i=1ni!log2X=Ω(n2logn)


3
Знову ж таки, у будь-якій моделі двійкових рішень не лише порівняння.
Jeffε
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.