Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <ctime>
- using namespace std;
- //matrix[i][j] == matrix[ j*N + i ] => pointer arithmetic
- void random_matrix( int* matrix, int N ){
- srand(time(NULL));
- for ( int i = 0; i < N; i++ ){
- for ( int j = 0; j < N; j++ ){
- matrix[j*N+i] = rand()%10;
- }
- }
- }
- void print_matrix( int* matrix, int N ){
- for ( int i = 0; i < N; i++ ){
- for ( int j = 0; j < N; j++ ){
- cout << matrix[j*N+i];
- }
- cout << endl;
- }
- }
- void swap( int& a, int& b ){
- int tmp = a;
- a = b; b = tmp;
- }
- void matrix_sort( int* matrix, int N ){
- //Bubble sort analogue
- bool swapped;
- do{
- swapped = 0;
- for ( int i = N-1; i >= 0; i-- ){
- for ( int j = N-1; j >= 0; j-- ){
- if ( i-1 >= 0 && matrix[j*N+i] < matrix[j*N+i-1] ){
- swap( matrix[j*N+i], matrix[j*N+i-1] );
- swapped = 1;
- }
- if ( j-1 >= 0 && matrix[j*N+i] < matrix[j*N-N+i] ){
- swap( matrix[j*N+i], matrix[j*N-N+i] );
- swapped = 1;
- }
- }
- }
- }while ( swapped );
- }
- int main(){
- int matrix[6][6] = {0};
- //sorts random 6x6 matrix
- random_matrix(&matrix[0][0], 6);
- print_matrix(&matrix[0][0], 6);
- matrix_sort(&matrix[0][0], 6);
- cout << endl;
- print_matrix(&matrix[0][0], 6);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement