Ordenação de uma matriz insertion sort

Oi galera, estou precisando de ajuda em um trabalho de faculdade quero ordenar uma matriz usando Insertion sort.
onde cada coluna fica uma palavra de língua diferente (português / inglês). O usuário vai escolher como quer ordenar,

minha dúvida é como ordenar usando uma matriz.
ex: String [][] dicionario = { {“cachorro”,“dog”}, {“gato”, “cat”}, … };

eu já implementei a ordenação de vetor.

public static void main(String[] args) {
		

		String []vetor={"zelda","zen","a","d"};

		insertionSort(vetor);
	}
	public static void insertionSort(String []array){

		for (int i = 1; i < array.length; i++) {
			String a = array[i];
			for (int j = i - 1; j >= 0 && array[j].compareToIgnoreCase(a) > 0; j--){
				array[j + 1] = array[j];
				array[j] = a;
			}
		}
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
		}
		
	}

por favor me ajudem !

Velho,

Considerando que vc só vai ordenar em um dos idiomas em cada operação de ordenação.

vc pode adaptar o algoritmo considerando que cada coluna é um vetor. Porém, no momento da troca vc vai ter que realizar a troca para as duas colunas.

entendeu a idéia?

[quote=santanna106]Velho,

Considerando que vc só vai ordenar em um dos idiomas em cada operação de ordenação.

vc pode adaptar o algoritmo considerando que cada coluna é um vetor. Porém, no momento da troca vc vai ter que realizar a troca para as duas colunas.

entendeu a idéia?

[/quote]

cara não entendi direito ;/ , não seria mais fácil usar matriz ?

[quote=santanna106]Velho,

Considerando que vc só vai ordenar em um dos idiomas em cada operação de ordenação.

vc pode adaptar o algoritmo considerando que cada coluna é um vetor. Porém, no momento da troca vc vai ter que realizar a troca para as duas colunas.

entendeu a idéia?

[/quote]

é porque o usuário que vai escolher como ordenar se é por inglês ou português, isso que tá me complicando. E vai ter que mostrar a respectiva tradução.

Mas é para vc usar a matriz mesmo.

vou tentar implementar aqui e mostro o código.

Velho,

veja se agora a idéia ficou mais clara

public static void insertionSort(String[][] array) {

		for (int i = 1; i < array.length; i++) {
			String a = array[i][1];
			String b = array[i][0];
			for (int j = i - 1; j >= 0 && array[j][1].compareToIgnoreCase(a) > 0; j--) {
				array[j + 1][1] = array[j][1];
                                array[j + 1][0] = array[j][0];
				array[j][1] = a;
				array[j][0] = b;
			}
		}
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i][0] + " " + array[i][1]);
		}

	}

neste caso eu fixei que a coluna a ser ordenada será a 1 ou seja a que contém palavras em inglês. Mas, vc pode adaptar o método para variar na ordenação.

eu não testei o código. Simplismente peguei o seu e adaptei.

Observer que eu criei a strig b para armazenar o valor da outra coluna e realizar a troca

[quote=santanna106]Velho,

veja se agora a idéia ficou mais clara

public static void insertionSort(String[][] array) {

		for (int i = 1; i < array.length; i++) {
			String a = array[i][1];
			String b = array[i][0];
			for (int j = i - 1; j >= 0 && array[j][1].compareToIgnoreCase(a) > 0; j--) {
				array[j + 1][1] = array[j][1];
                                array[j + 1][0] = array[j][0];
				array[j][1] = a;
				array[j][0] = b;
			}
		}
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i][0] + " " + array[i][1]);
		}

	}

neste caso eu fixei que a coluna a ser ordenada será a 1 ou seja a que contém palavras em inglês. Mas, vc pode adaptar o método para variar na ordenação.

eu não testei o código. Simplismente peguei o seu e adaptei.

Observer que eu criei a strig b para armazenar o valor da outra coluna e realizar a troca[/quote]

Entendi a idéia da coluna fixa e da nova variável para armazenar a nova coluna. Valeuu!