"삽입정렬 구현"의 두 판 사이의 차이

76번째 줄: 76번째 줄:
== Python ==
== Python ==
[[분류: Python]]
[[분류: Python]]
{{참고|Python 삽입정렬 구현}}
<source lang="python">
<source lang="python">
def insert_sort(x):
def insertion_sort(arr):
for i in range(1, len(x)):
for i in range(1, len(arr)):
j = i - 1
j = i-1
key = x[i]
key = arr[i]
while x[j] > key and j >= 0:
while arr[j]>key and j>=0:
x[j+1] = x[j]
arr[j+1] = arr[j]
j = j - 1
j -= 1
x[j+1] = key
arr[j+1] = key
return x
arr = [3,4,2,1,7,5,8,9,0,6,100,10]
insertion_sort(arr)
print( " ".join(map(str,arr)) )
# 0 1 2 3 4 5 6 7 8 9 10 100
</source>
</source>



2018년 7월 15일 (일) 16:59 판

1 C

#include<stdio.h>
void insertion_sort(int arr[], int size) {
	int i, j, key;
	for(i=1; i<size; i++) {
		key = arr[i];
		j = i-1;
		while( j>=0 && arr[j]>key) {
			arr[j+1] = arr[j];
			j--;
		}
		arr[j+1] = key;
	}
}
int main() {
	int arr[] = {3,4,2,1,7,5,8,9,0,6,100,10};
	int size = sizeof(arr)/sizeof(int);
	insertion_sort(arr, size);
	for(int i=0; i<size; i++) printf("%d ", arr[i]);
	// 0 1 2 3 4 5 6 7 8 9 10 100
}

2 C++

#include <iterator>

template<typename biIter>
void insertion_sort(biIter begin, biIter end)
{
    biIter bond = begin;
    for (++bond; bond!=end; ++bond)
    {
      typename std::iterator_traits<biIter>::value_type key = *bond;
      biIter ins = bond;
      biIter pre = ins;
      for (--pre; ins != begin && *pre > key; *ins-- = *pre--);
      *ins = key;
    }
}

3 Java

void insertionSort(int[] arr) {
   for(int index = 1 ; index < arr.length ; index++){
      int temp = arr[index];
      int aux = index - 1;
      while( (aux >= 0) && ( arr[aux] > temp ) ) {
         arr[aux+1] = arr[aux];
         aux--;
      }
      arr[aux + 1] = temp;
   }
}

4 OCaml

let rec isort = function
	| [] -> []
	| h::t -> insert h (isort t)
and insert a = function
	| [] -> [a]
	| h::t when a<h -> [a] @ (h::t)
	| h::t -> [h] @ (insert a t);;

5 Python

def insertion_sort(arr):
	for i in range(1, len(arr)):
		j = i-1
		key = arr[i]
		while arr[j]>key and j>=0:
			arr[j+1] = arr[j]
			j -= 1
		arr[j+1] = key
arr = [3,4,2,1,7,5,8,9,0,6,100,10]
insertion_sort(arr)
print( " ".join(map(str,arr)) )
# 0 1 2 3 4 5 6 7 8 9 10 100

6 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}