정렬되지 않은 배열의 원소를 하나씩 key 값으로 선택한다.key 값을 기준으로 좌측은 항상 정렬된 상태이다.key 값을 정렬된 좌측 원소들과 비교하며, key 값이 좌측 원소보다 작다면 정렬된 원소들을 오른쪽으로 한 자리씩 이동시켜 key 값이 들어갈 자리를 만든다.
셸 정렬은 gap(특정 간격)이 1이 될때까지 gap의 간격만큼 삽입 정렬이 이뤄진다.셸 정렬은 삽입 정렬에서 인접한 원소끼리만 비교가 이뤄지는 단점을 gap을 기준으로 비교함으로써 보완했다. gap만큼 떨어진 원소들을 비교하며 삽입 정렬함으로써 비교해야하는 원소들의

초기화역전시킬 값의 비트 크기만큼 반복할 수 있도록 i=8로 초기화 한다.res에는 비트가 역전된 값을 담을 수 있도록 0으로 초기화 한다.비트를 역전시킬 값과 1을 "&" 연산하여 비트 값을 구한다.1에서 얻은 값을 res의 값과 res에 "|" 연산을 진행한다. 이