Здравствуйте, Grim, Вы писали:
G> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, Шахтер, Вы писали: AD>>>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит. Ш>>Странно, мне всегда казалось, что чем короче программа, тем лучше. Меньше слов (ключевых), больше дела!
AD>Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента
По мне так препод хочет увидеть реализацию преобразования. И ему не покатит использование готовой реализации.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Алексей Одинцов, Вы писали:
АО>Здравствуйте, LaptevVV, Вы писали: LVV>>Я б поставил трояк LVV>>Это решение проблемы наипростейшим способом. Значит — соображает хоть что-то! АО>стимулируете к неиспользованию включенных в современные средства стандартных возможностей?? %)))
АО>я бы даже такое задание не дал... как впрочем не дал бы и заданий аля "написать бабль сорт" или что ужасней "написать qsort" — нафих???
Чтоб знали и понимали как это все работает. АО> надо стимулировать к использованию std::sort, а не заставлять людей понапрасну мучацца. если бы у меня работник написал сортировкую массива с использованием своей функции-сортировки бабль сортом, я бы его уволил нахрен тут же...
даа, хреновый вы руководитель. В некоторых случаях бабл гораздо быстрее std::sort-а. И если использование баблсорта оправдано — то нет никакой причины бухтеть на исполнителя.
АО>задания надо давать соответствующие... ну где щас понадобится опыт в написании dec2hex? времена ASM канули в прошлое.
Вот и растет поколение, у которого шаг в сторону — и капут, приехали. Алгоритмы не знают, знают только как ими пользоваться.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
CC>даа, хреновый вы руководитель. В некоторых случаях бабл гораздо быстрее std::sort-а. И если использование баблсорта оправдано — то нет никакой причины бухтеть на исполнителя.
А мне интересно, в каких случах бабл быстрее q-sort?
Здравствуйте, Vamp, Вы писали:
CC>>даа, хреновый вы руководитель. В некоторых случаях бабл гораздо быстрее std::sort-а. И если использование баблсорта оправдано — то нет никакой причины бухтеть на исполнителя. V>А мне интересно, в каких случах бабл быстрее q-sort?
Когда надо досортировать почти отсортированные данные.
У нас применяется в проекте — по результатам тестов замена std::sort на рукописный бабл дала заметный прирост.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
А>>//const char hexArr[16] = "0123456789ABCDEF";
V>/*Зачем выполнять копирование? И тем более прописывать размер массива - пусть компилятор работает за нас!*/
V>const char* const = "0123456789ABCDEF";/ccode]
Строка [ccode]
const char hexArr[16] = "0123456789ABCDEF";
Объявляет именованную/инициализированную область памяти размером 16 байт и помещает её в секцию с аттрибутами read-only.
Строка
const char* const = "0123456789ABCDEF";
Объявляет неименованную область памяти размером 17 байт и помещает её в секцию с аттрибутами read-only
Кроме того заводится глобальная переменная 4 байта, которая инициализируется адресом безимянной области и помещается в секцию read-write. Вы можете изменить переменную const и тогда безимянная область памяти станет утерянной.
CC>Когда надо досортировать почти отсортированные данные. CC>У нас применяется в проекте — по результатам тестов замена std::sort на рукописный бабл дала заметный прирост.
На первый взгляд не очевидно — бабл как делал n сравнений на каждый проход, так и делает. От того, что массив уже отсортирован, вроде ничего изменяться не должно... если только операция собственно копирования значений не слишком долгая.
MS>>.... Вы можете изменить переменную const
V>Это как, интересно?
Ту ошибку которую вы совершили в коде
А>//const char hexArr[16] = "0123456789ABCDEF";
/*Зачем выполнять копирование? И тем более прописывать размер массива - пусть компилятор работает за нас!*/const char* const = "0123456789ABCDEF";
Можно трактовать как
const char* hexArr = "0123456789ABCDEF";
или как
const char* const hexArr = "0123456789ABCDEF";
Я трактовал Вашу ошибку как первый вариант.
Имя переменной конечно не может быть const, но поскольку в оригинальном сообщении вообще нет имени, в моем предложении которое вы цитировали под "переменной const" следует читать "переменную которая должна стоять на месте const"
Здравствуйте, Vamp, Вы писали:
CC>>Когда надо досортировать почти отсортированные данные. CC>>У нас применяется в проекте — по результатам тестов замена std::sort на рукописный бабл дала заметный прирост. V>На первый взгляд не очевидно — бабл как делал n сравнений на каждый проход, так и делает. От того, что массив уже отсортирован, вроде ничего изменяться не должно... если только операция собственно копирования значений не слишком долгая.
Прирост получается на достаточно специфическом наборе данных. Более точно не скажу — нету сення того чела который тот код писал. Юзается при отрисовке большого кол-ва прозрачных частиц.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Vamp, Вы писали:
CC>>Когда надо досортировать почти отсортированные данные. CC>>У нас применяется в проекте — по результатам тестов замена std::sort на рукописный бабл дала заметный прирост. V>На первый взгляд не очевидно — бабл как делал n сравнений на каждый проход, так и делает. От того, что массив уже отсортирован, вроде ничего изменяться не должно... если только операция собственно копирования значений не слишком долгая.
quick sort — далеко не всегда идеальный вариант. Другой пример его медленной работы — сортировка массива состоящего из больших отсортированных кусков. Смотрите внимательней на его алгоритм.
Хотя за использование bubble sort я бы всё-таки уволил (может и не уволил бы, но за нежелание помимо quicksort'a и бабла вспомнить какой-нибудь ещё алгоритм наказать следует).
Для маленьких массивов можно применять insertion sort (развитие бабла), для тех что покрупнее — либо сортировать quick sort'ом наоборот (то есть именить функцию сравнения на обратную), либо использовать какой-то другой алгоритм. Либо вообще всегда использовать алгоритмы с фиксированной сложностью, например — heapsort.
Когда я имел дело с данными в несколько миллионов елементов, простой quick sort проседал на полтора часа (а может полчаса, точно не помню, но очень на много); heapsort ~ 20 секунд. Переделанный quicksort ~15 секунд.
V>С тем, что Вы написали, спорить не приходится. Я спрашивал именно о пузырьке и как он может быть быстрее q-сорта.
Стандартный вариант пузырька делает не жёстко заданные n-1 проходов, а выполняет проходы до тех пор, пока делается хотя бы одна перестановка. Если данные уже почти отсортированы, т.е. все элементы находятся от своих правильных мест не далее чем на k позиций, то он потребует порядка k*n операций, а не n*log(n), как квик в лучшем случае (и в среднем), а хип — в худшем. Соответственно, если n~=2^25, а k~=5, то получим выигрыш в 5 раз.
Re[4]: 16-ная система
От:
Аноним
Дата:
05.07.06 05:13
Оценка:
Здравствуйте, Shroo, Вы писали:
S> Приношу я... написал клиента... интерфейс командной строки, коннектится, использую ODBC API и дальше можно туда любой sql писать... супер, мне понравилось.. И что вы думаете... отправили меня как миленького назад, не объяснив даже почему... Вот и стремись после этого к знаниям..
Для Оракла лучше OCI пользовать, уж очень ODBC драйвера к нему кривы и убоги. А OCI всвязке с OTL (Oracle Template Library от нашего соотечественника) это просто самолёт!