ordenação não usual

1. ordenação não usual

Maria Luisa de Barros Rodrigues
mrodrigues91

(usa Ubuntu)

Enviado em 01/11/2022 - 07:12h

Olá, pessoal
Preciso ordenar uns arquivos, mas geralmente mudamos a ordem das linhas a partir de uma coluna especificada.
Eu preciso fazer ao contrário, mudar a ordem das colunas mesmo a partir da linha 1 (headline). Ex:

Input

1 2 7 5 3 9 6 8
0 1 1 0 1 0 1 0
1 1 0 0 0 1 0 1
1 0 1 1 0 0 0 1
0 0 0 1 0 0 1 0


Output

1 2 3 5 6 7 8 9
0 1 1 0 1 1 0 0
1 1 0 0 0 0 1 1
1 0 0 1 0 1 1 0
0 0 0 1 1 0 0 0

Algum comando faz isso?

Obrigada



  


2. RE: ordenação não usual

Luiz Eduardo Maia Ribeiro
distromaialinux

(usa Debian)

Enviado em 01/11/2022 - 11:55h

Oi tudo bem!

Cara, pior que a solução específica eu não me lembro, mas te direi como eu chegaria lá:

Primeiro, existe uma função pronta universal em todas as programações basicamente, chamada de "Sort". Essa função é responsável por ordenar caracteres. Exemplo: 321 -> passa a ser 123

Segundo, como posso perceber é uma matriz, matriz mais comum é formada por 2 vetores e posições denominada linha e coluna. É possível percorrer as linhas e colunas com for ou com while, e comparar se um valor numa determinada posição (próximo número) é menor que o anterior, se sim, então inverta as posições. Isto é feito com o comando IF ( uma condicional ) e é preciso criar também uma variável temporária para armazenar o valor e ou posição do vetor. Assim é possível inverter as posições.

Em algumas programações orientada a objetos, já existe um atributo chamado identity que é responsável por pegar apenas a diagonal da matriz se não me engano. Mas não sei se tem no shellscript essa função.

Enfim! espero ter te ajudado a compreender um pouquinho a lógica. Boa Sorte!

Algumas Denominações para se levar em consideração:
matriz[3][3] = 3 posições em 3 linhas, 3 posições em 3 colunas
1 2 3
4 5 6
7 8 9

vetor[3] = 3 posições em uma linha apenas
24 26 30

A primeira posição sempre será = 0 ou seja: número de posições do vetor acima fica assim: 0 1 2
onde na posição 0 temos o número 24, na posição 1 temos o número 26, e na posição 2 temos o número 30.

possível solução b=24 , a=26, c=?, (a,b). por favor ordene os valores das posiçoes :

a=26
b=24
c=?
(a,b) = (26,24)

c=b -> 24
b=a -> 26

a = c - > 24

resultado final mais ou menos assim. = (a,b) = (24,26)


Sort() = Função de ordenação de caracteres
Identity() = Em algumas programações Orientadas a Objetos, Pega os números da diagonal da matriz






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts