Go Back   Armenian Knowledge Base > Technical sections > Languages, Compilers, Interpreters > Algorithms

Reply
 
Thread Tools

Algorithm of spiral-way enumerating of the matrix
Old 25.01.2014, 20:05   #1
Ego coder
 
AvDav's Avatar
 
Join Date: 07 2004
Location: Yerevan, Armenia
Age: 43
Posts: 3,738
Rep Power: 4
Default Algorithm of spiral-way enumerating of the matrix

Меня таким тривиальным вещам учили в универе.
Всё думал, а зачем такое преподавать студентам?
Надо же с основ информатики и всякой теории,
А они берут и тычкают стандартными задачами студентов,
Дескать "развивает инженерное мышление".
Ага, куда там - идёшь на интервью при первой же оплошности
Тебе делают втык как-будто ты сам вычислительная машина
И должен сразу отвечать в соответствии с их требованиями

Энивей, представляю алгоритм печати элелментов двумерного массива
в спиралевидной форме, об области его применения думайте сами.
Часто задаваемая задача на интервью в таких гигантах как
Google, Amazon, Microsoft etc.

Code:
#include <iostream>
 
using namespace std;
 
template<int n, int m> 
void printSpirally(int a[n][m]) {
        int left = 0, right = m, top = 0, down = n, i;
        while(true) {
				//print upper row
                for(i = left; i < right; ++i) cout << a[top][i] << ' ';
                ++top;
                if(top > down - 1) break;
 
				//print right column
                for(i = top; i < down; ++i) cout << a[i][right - 1] << ' ';
                --right;
                if(left > right - 1) break;
 
				//print lower row
                for(i = right - 1; i >= left; --i) cout << a[down - 1][i] << ' ';
                --down;
                if(top > down - 1) break;
 
				//print left column
                for(i = down - 1; i >= top; --i) cout << a[i][left] << ' ';
                ++left;
                if(left > right - 1) break;
        }
}
 
int main() {
        int a[][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16}, {17,18,19,20}};
        printSpirally<5,4>(a);
        return 0;
}
Reply



Similar Threads
Thread Thread Starter Forum Replies Last Post
Doomsday Algorithm Hrach_Techie Algorithms 4 21.10.2004 16:37
Spiral Model:Document/SW Development Life Cycles Hrach_Techie TWARM 0 05.09.2004 10:03
Booth's Multiplication Algorithm DaNYer Algorithms 9 24.11.2003 05:47
Matrix Reloaded aka Matrix 2003 acid Cinema 1 31.05.2002 05:13
Bit packing best algorithm greka Algorithms 27 24.05.2002 13:01


Реклама:
реклама

All times are GMT. The time now is 12:30.
Top

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.