| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Проблемы с быстрой сортировкой |
| Автор: 6atoh 17.9.2006, 18:24 | ||
| Взял алгоритм быстрой сортировки с http://algolist.manual.ru/sort/quick_sort.php Вот он собственно:
Так вот меня смущает строка: if( N > i ) quickSortR(a+i, N-i); что значит a+i, если a в моем случае - массив byte[]??? |
| Автор: CaptainFlint 17.9.2006, 18:32 |
Имя массива является указателем на его начало. Т.е. литерал a является переменной, содержащей адрес ячейки a[0]. Соответственно, прибавляя к указателю число i, ты смещаешь этот указатель на i элементов, т.е. a+i будет являться указателем на ячейку a[i] |
| Автор: Kuvaldis 17.9.2006, 18:35 |
| 6atoh, В С/С++ имя массива - это указатель на первый элемент(его адрес) Если мы к указателю прибавляем число i, то компилятор РЕАЛЬНО указывает на i-тый элемент массива независимо от его типа. Происходит это так: i * sizeof(тип_элементов_массива) Т.е. a + i - это указатель (см. выше - имя массива) P.S. CaptainFlint - редиска, опередил меня |
| Автор: maxim1000 17.9.2006, 21:28 |
| всё-таки, вопрос больше по C/C++, чем по алгоритму так что туда и переношу... |
| Автор: 6atoh 18.9.2006, 02:02 |
| всем спасибо....видимо придется создавать похожую тему в .NET, т.к. именно там у меня возникла проблема |