Advertisement
Guest User

InsertionSort

a guest
Apr 26th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. package Sort;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class InsertionSort {
  6. public static void main(String[] args) {
  7. Scanner in = new Scanner(System.in);
  8. int[] arr = new int[in.nextInt()];
  9. for (int i = 0; i < arr.length; i++) {
  10. arr[i] = in.nextInt();
  11. }
  12. insertionSort(arr);
  13. for (int i = 0; i < arr.length; ++i) {
  14. System.out.print(arr[i] + " ");
  15. }
  16. System.out.println();
  17. }
  18.  
  19. static void insertionSort(int arr[])
  20. {
  21. /*
  22. Começa a percorrer o array iniciando pela segunda casa e
  23. continua até acabar o array.
  24. */
  25. for (int i = 1; i < arr.length; ++i) {
  26. //Armazena o que está na casa atual.
  27. int key = arr[i];
  28. //Pega a posição imediatamente antes desta casa
  29. int j = i - 1;
  30. /*
  31. Continua caso o J sejá maior ou igual a zero e o array na posição j
  32. seja menor ou igual ao que está armazenado.
  33. */
  34. while (j >= 0 && arr[j] > key) {
  35. /*
  36. Faz com que a posição a frente do j receba o que estiver em j
  37. e faz o j decrescer. Isto continua até achar a posição onde
  38. o valor armazenado deve ser posto ou quando o j for 0.
  39. */
  40. arr[j + 1] = arr[j];
  41. j = j - 1;
  42. }
  43. //Põe o valor armazenado na posição certinha.
  44. arr[j + 1] = key;
  45. }
  46. }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement