Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import org.junit.Test;
- import java.io.*;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import static org.junit.Assert.assertArrayEquals;
- public class Main {
- public static Integer[] insertionSort(Integer[] arr){
- int n = arr.length;
- for (int i = 1; i < n; ++i) {
- int key = arr[i];
- int j = i - 1;
- //move os elementos a array que sao maiores que a variavel key para uma posição a frente da atual
- while (j >= 0 && arr[j] > key) {
- arr[j + 1] = arr[j];
- j = j - 1;
- }
- arr[j + 1] = key;
- }
- return arr;
- }
- public static Integer[] readTxt(String pathname){
- List<Integer> list = new ArrayList<Integer>();
- //cada linha equivale a um número
- File file = new File(pathname);
- try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
- String text = null;
- while ((text = reader.readLine()) != null) {
- list.add(Integer.parseInt(text));
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- return list.toArray(new Integer[0]);
- }
- public static void writeTxt(Integer[] orderedArr){
- try{
- FileWriter writer = new FileWriter("orderedNumbers.txt");
- BufferedWriter br = new BufferedWriter(writer);
- for (Integer integer : orderedArr) {
- br.write(integer.toString() + "\n");
- }
- br.close();
- }catch (IOException e){
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- Integer[] arr = readTxt("/home/victor/Projects/InsertionSort/src/com/company/numbers.txt");
- Integer[] orderedArr = insertionSort(arr);
- System.out.println(Arrays.toString(orderedArr));
- writeTxt(orderedArr);
- }
- @Test
- public void sortTest(){
- Integer[] array = {5,2,7,1,3,9};
- Integer[] resultArray = insertionSort(array);
- Integer[] expectedArray = {1,2,3,5,7,9};
- assertArrayEquals(expectedArray, resultArray);
- array = new Integer[]{3, 8, 2, 7, 3, 5};
- resultArray = insertionSort(array);
- expectedArray = new Integer[]{2, 3, 3, 5, 7, 8};
- assertArrayEquals(expectedArray, resultArray);
- array = new Integer[]{9, 8, 7, 6, 5, 4};
- resultArray = insertionSort(array);
- expectedArray = new Integer[]{4, 5, 6, 7, 8, 9};
- assertArrayEquals(expectedArray, resultArray);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement