Armenian Knowledge Base  

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

Reply
 
LinkBack Thread Tools
Old 25.01.2014, 21:05   #1
The splendid
 
AvDav's Avatar
 
Join Date: 07 2004
Location: Universe
Age: 36
Posts: 3,413
Downloads: 22
Uploads: 0
Reputation: 222 | 3
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 With Quote
Reply

Thread Tools

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


На правах рекламы:
реклама

All times are GMT. The time now is 14:02.


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