본문 바로가기
자바/자바

[자바] 삽입정렬 insertionsort를 실행하는 프로그램을 작성하시오

by 이얏호이야호 2022. 12. 31.

공부하시는대에 도움이 됐으면 좋겠습니다.

답안코드 확인해주세요!

 

더보기
public class Main
{
     public static void main(String[] args)
    {
        int[] b = {7, 5, 11, 2, 16, 4, 18, 14, 12, 30};

        System.out.println("삽입정렬 전 : ");
        int i;
        for (i = 0; i < b.length; ++i)
            System.out.print(b[i] + " ");
        
        System.out.println();

        Main.sort(b);

        System.out.println("삽입정렬 후 : ");
        for (i = 0; i < b.length; ++i)
            System.out.print(b[i] + " ");
        
        System.out.println();
    }
    public static void sort(int[] a)
    {
       
        int[] temp = new int[a.length]; 
        int sizeOfTemp = 0;             
        int next;                       
        int insertIndex;                
        
        temp[0] = a[0];
        sizeOfTemp++;                  

    

        for(int i = 1; i < a.length; ++i)
        {
            next = a[i];
            insertIndex = findInsertIndex(next, temp, sizeOfTemp);
            ++sizeOfTemp;
            moveElements(insertIndex, temp, sizeOfTemp);
            temp[insertIndex] = next;
        }

       

        for(int i = 0; i < a.length; ++i)
            a[i] = temp[i];
    }

    private static int findInsertIndex(int value, int[] array, int tempSize)
    {
        int i;                 
        for( i = 0; i <tempSize; ++i)
        {
            if(value < array[i])
                return(i);   
        }
        return(i);               
    }

    private static void moveElements(int lowIndex, int[] array, int highIndex)
    {
        for(int i = highIndex - 1; i > lowIndex; --i)
            array[i] = array[i-1]; // Move element down one place
    }
}


더 많은 자바코드가 보고 싶다면?

https://chuinggun.tistory.com/category/%EC%9E%90%EB%B0%94/%EC%9E%90%EB%B0%94

 

댓글