Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. package com.company;
  2.  
  3. import org.junit.Test;
  4.  
  5. import java.io.*;
  6. import java.util.ArrayList;
  7. import java.util.Arrays;
  8. import java.util.List;
  9.  
  10. import static org.junit.Assert.assertArrayEquals;
  11.  
  12. public class Main {
  13.  
  14.  
  15. public static Integer[] insertionSort(Integer[] arr){
  16. int n = arr.length;
  17. for (int i = 1; i < n; ++i) {
  18. int key = arr[i];
  19. int j = i - 1;
  20. //move os elementos a array que sao maiores que a variavel key para uma posição a frente da atual
  21. while (j >= 0 && arr[j] > key) {
  22. arr[j + 1] = arr[j];
  23. j = j - 1;
  24. }
  25. arr[j + 1] = key;
  26. }
  27. return arr;
  28. }
  29.  
  30. public static Integer[] readTxt(String pathname){
  31. List<Integer> list = new ArrayList<Integer>();
  32. //cada linha equivale a um número
  33. File file = new File(pathname);
  34.  
  35. try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
  36. String text = null;
  37.  
  38. while ((text = reader.readLine()) != null) {
  39. list.add(Integer.parseInt(text));
  40. }
  41. } catch (IOException e) {
  42. e.printStackTrace();
  43. }
  44.  
  45.  
  46. return list.toArray(new Integer[0]);
  47.  
  48. }
  49.  
  50. public static void writeTxt(Integer[] orderedArr){
  51. try{
  52. FileWriter writer = new FileWriter("orderedNumbers.txt");
  53. BufferedWriter br = new BufferedWriter(writer);
  54.  
  55. for (Integer integer : orderedArr) {
  56.  
  57. br.write(integer.toString() + "\n");
  58.  
  59. }
  60. br.close();
  61.  
  62. }catch (IOException e){
  63. e.printStackTrace();
  64. }
  65. }
  66.  
  67.  
  68. public static void main(String[] args) {
  69. Integer[] arr = readTxt("/home/victor/Projects/InsertionSort/src/com/company/numbers.txt");
  70.  
  71. Integer[] orderedArr = insertionSort(arr);
  72.  
  73. System.out.println(Arrays.toString(orderedArr));
  74.  
  75. writeTxt(orderedArr);
  76.  
  77. }
  78.  
  79.  
  80. @Test
  81. public void sortTest(){
  82. Integer[] array = {5,2,7,1,3,9};
  83. Integer[] resultArray = insertionSort(array);
  84. Integer[] expectedArray = {1,2,3,5,7,9};
  85. assertArrayEquals(expectedArray, resultArray);
  86.  
  87. array = new Integer[]{3, 8, 2, 7, 3, 5};
  88. resultArray = insertionSort(array);
  89. expectedArray = new Integer[]{2, 3, 3, 5, 7, 8};
  90. assertArrayEquals(expectedArray, resultArray);
  91.  
  92. array = new Integer[]{9, 8, 7, 6, 5, 4};
  93. resultArray = insertionSort(array);
  94. expectedArray = new Integer[]{4, 5, 6, 7, 8, 9};
  95. assertArrayEquals(expectedArray, resultArray);
  96.  
  97. }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement