Перегляньте відео нижче, щоб дізнатися, як встановити наш сайт як веб-програму на головному екрані.
Замітка: Для цієї функції наразі потрібен доступ до сайту за допомогою вбудованого браузера Safari.
Вы занимайтесь сбором в фонд помощи детишкам - у вас это как-то лучше получается, что ли...Эххх, студиозусы. Вот наглядный пример зашоренного мышления, когда изгаляются над префиксно-постфиксными операторами, краткой записью проверки и т.д. вместо кардинального улучшения.
И даже в голову не приходит, как действительно сделать лучше.
Подсказываю - ПРЯМОЕ вычисление значений элементов, а не ерзанье по массиву![]()
Надо так:
Код:... int size=atoi(argv[1])|1; int* array=new(int[size][size]); ...
Деточка, в отличие от тебя я как минимум написал работающий код и откорректировал вариант ТС-а с указателями. А написанную тобой постную хуйню про оператор new в Сях откомментировали и без меняВы занимайтесь сбором в фонд помощи детишкам - у вас это как-то лучше получается, что ли...![]()
Специально для тупых морских свинок (которые ни к морю ни к свиньям не имеют отношенияPS: Кстати, слово "изголяются" пишется через букву "о"![]()
Значение слова "ИЗГАЛЯТЬСЯ" в толковом словаре Даля
ИЗГАЛЯТЬСЯ - или изгиляться перм. арх. (см. галить) насмехаться, ТРУНИТЬ, зубоскалить, глумиться, подымать насмех; корчить, представлять либо передразнивать кого; ломаться, дурачиться, коверкаться, изгибаться...
Эххх, студиозусы. Вот наглядный пример зашоренного мышления, когда изгаляются над префиксно-постфиксными операторами, краткой записью проверки и т.д. вместо кардинального улучшения.
И даже в голову не приходит, как действительно сделать лучше.
Подсказываю - ПРЯМОЕ вычисление значений элементов, а не ерзанье по массиву![]()
#define size 9
int main(int argc, char *argv[])
{
int array[size][size] = { {81, 80, 79, 78, 77, 76, 75, 74, 73}
, {50, 49, 48, 47, 46, 45, 44, 43, 72}
, {51, 26, 25, 24, 23, 22, 21, 42, 71}
, {52, 27, 10, 9, 8, 7, 20, 41, 70}
, {53, 28, 11, 2, 1, 6, 19, 40, 69}
, {54, 29, 12, 3, 4, 5, 18, 39, 68}
, {55, 30, 13, 14, 15, 16, 17, 38, 67}
, {56, 31, 32, 33, 34, 35, 36, 37, 66}
, {57, 58, 59, 60, 61, 62, 63, 64, 65} };
int indexx, indexy;
for(indexx = 0; indexx < size; indexx++)
{
for(indexy = 0; indexy < size; indexy++)
printf("%02d ", array[indexx][indexy]);
printf("\n");
}
system("pause");
return 0;
}
Самое быстрое решение
Код:#define size 9 int main(int argc, char *argv[]) { int array[size][size] = { {81, 80, 79, 78, 77, 76, 75, 74, 73} , {50, 49, 48, 47, 46, 45, 44, 43, 72} , {51, 26, 25, 24, 23, 22, 21, 42, 71} , {52, 27, 10, 9, 8, 7, 20, 41, 70} , {53, 28, 11, 2, 1, 6, 19, 40, 69} , {54, 29, 12, 3, 4, 5, 18, 39, 68} , {55, 30, 13, 14, 15, 16, 17, 38, 67} , {56, 31, 32, 33, 34, 35, 36, 37, 66} , {57, 58, 59, 60, 61, 62, 63, 64, 65} }; int indexx, indexy; for(indexx = 0; indexx < size; indexx++) { for(indexy = 0; indexy < size; indexy++) printf("%02d ", array[indexx][indexy]); printf("\n"); } system("pause"); return 0; }
Итого грандиозный проект под названием "Лечение компьютерного плоскостопия дикими
танцами на платформе 9*9" почти готов.
Остались неразрешенными некоторые нюансы,но это мелочи,по сравнению с разработкой
методики применения такого препарата как "ATOI&NEW".
И все таки есть смысл настаивать на дополнении проекта заданием начальных параметров
движения по спирали в виде начального значения и шага последовательности,который
может бать величиной,изменяемой по определенному закону при переходе от одного витка
к другому.
Например можно представить спиралевидное покрытие магнитных дисков,и тогда матрица
станет основополагающей для файловой системы(это то что мы имеем после форматирования
дисков)
И далее ...
Пример в студию.
Не будь голословным, пример.
До чего же дети пошли нетерпеливые, без понимания, что у взрослых людей есть еще куч дел, кроме как ставить на место зарвавшихся детишекBFG-9000, покажи же пример.
Зверски поскипано ибо во мнение постная хуйня и сейчас это будет показаноМое мнение: ...
С такими рассуждениями я бы тебе даже метод пузырька не доверил реализовыватькак видно, через каждые два шага количество итераций увеличивается на одну. Итого 81 одна итерация, несколько инкрементов-декрементов, и условные переходы, еще есть проверка с умножением, которое выполняется не за один такт процессора и не за два, которое можно заменить переменной.
А вот это слова не мальчика но мужа. Или пиздюка - тут уж тебе выбирать, кем ты будешь, мужчиной или сам понимаешь...Если есть такой алгоритм и он быстрее моего кода, то показавшему ставлю бутылку коньяка.
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "time.h"
// Кл-во тестовых итераций
#define TEST_ITERATION 100000
// Функция товарища ASokol-а
void f1(int ** array, int razmer)
{
for (int test=0; test<TEST_ITERATION; test++)
{
int size = razmer;
int indexx, indexy;
int counter, step, iterator;
indexx = indexy = (size / 2);
counter = step = array[indexx][indexy] = 1;
while (counter <= size * size)
{
for (iterator = 0; iterator < step; iterator++)
array[indexy][step & 1 ? --indexx : ++indexx] = ++counter;
if (counter > size * size) break;
for (iterator = 0; iterator < step; iterator++)
array[step & 1 ? ++indexy : --indexy][indexx] = ++counter;
step++;
}
}
}
// Моя функция
void f2(int **m, int razmer)
{
for (int test=0; test<TEST_ITERATION; test++)
{
int cnt;
int i,j, k;
int lt=1, rb=1, lb=1, rt=1;
int nextlevellt = 8, nextlevelrb = 4, nextlevellb = 2, nextlevelrt = 6, rp2 = razmer>>1;
m[rp2][rp2] = 1; cnt = razmer - rp2 - 1;
for (i=rp2-1; i>=0; i--)
{
lt += nextlevellt;
rb += nextlevelrb;
nextlevellt += 8;
nextlevelrb += 8;
rt += nextlevelrt;
lb += nextlevellb;
nextlevelrt += 8;
nextlevellb += 8;
m[i][i] = lt;
m[++cnt][i] = lb;
m[cnt][cnt] = rb;
m[i][cnt] = rt;
for (j=i+1, k=1; j<cnt; j++, k++)
{
m[i][j] = lt - k;
m[cnt][razmer-j-1] = rb - k;
m[razmer-j-1][i] = lb - k;
m[j][cnt] = rt - k;
}
}
}
}
// Функция вывода результатов для того, чтобы убедиться в правильности работы моего алгоритма
void show(int **m, int razmer)
{
for (int i=0; i<razmer; i++)
{
for (int j=0; j<razmer; j++) printf("%3d ", m[i][j]);
printf("\n");
}
printf("\n");
}
int main()
{
int razmer;
int** m;
int i;
// clrscr();
printf("Vvedite razmer:");
scanf("%d", &razmer);
m=(int**)malloc(razmer*sizeof(int *));
for(i=0; i<razmer; i++) m[i] = (int *) malloc(razmer*sizeof(int));
time_t ts, te;
time(&ts);
f1(m, razmer);
time(&te);
printf("Student`s solution time = %d\n", te-ts);
time(&ts);
f2(m, razmer);
time(&te);
// Раскомментировать для проверки правильности работы моего алгоритма.
// Рекомендуется TEST_ITERATION приравнять к единице дабы не ждать сотню тысяч проходов
// show(m, razmer);
printf("Normal solution time = %d\n", te-ts);
getch();
return 0;
}
методики применения такого препарата как "ATOI&NEW"
Разобрал код, алгоритм на порядок быстрее. Хоть это и не заявляемоеИтого мой алгоритм работает как минимум на 30 процентов быстрее. что явно находится за пределами возможных ошибок и погрешностей измерения времени работы алгоритма.
ПРЯМОЕ вычисление
Это вариант, основанный на том, то в пределах каждой четверти (если разделить матрицу диагоналями) результат представляет собой убывающие столбцы. Ну и правиле, что каждое следующее кольцо элементов от центра к краю на 8 элементов больше предыдущего.Разобрал код, алгоритм на порядок быстрее. Хоть это и не заявляемое, но алгоритм хороший. Спасибо за пример. Осталось решить вопрос с коньяком. Дай номер телефона или аськи, чтобы я с тобой связался.
Кто еще помнит такую штуку: Посилання видалено ?
Поступило предложение сдать кровь
И так мы имеем матрицу,определяющую нашу дорожку-змеевик,разбитую по секторам,скажем
в 4 КБ(плотность записи одинакова по всему участку)
И так вопрос стоит открытым,каким образом поддержать структурно-индексную часть наборов
данных с минимальными затратами на содержание дополнительных полей и сделать эффективной
страничную состовляющую,не забывая о том,что при каждом запросе на внешний носитель идет
считывание целого кластера.Возможно это построение некоторого интерфейсного слоя,который
бы выделял запрос к страничному файлу от запроса к другим наборам данных.
BFG-9000, покажи же пример.
...........
Если есть такой алгоритм и он быстрее моего кода, то показавшему ставлю бутылку коньяка.
Свидетельствую о том, что товарищ ASokol благородно и честно выполнил свои обязательства проигравшей стороны в вышеописанном споре.Разобрал код, алгоритм на порядок быстрее. Хоть это и не заявляемое, но алгоритм хороший. Спасибо за пример. Осталось решить вопрос с коньяком. Дай номер телефона или аськи, чтобы я с тобой связался.