반응형

버블 정렬 7

[C언어 알고리즘] 2.3.3 버블 정렬 알고리즘 소스 코드

[C언어 알고리즘] 2.3.3 버블 정렬 알고리즘 소스 코드//버블 정렬(Bubble Sort) #include #define SWAP(a,b) {int t; t = a; a=b; b=t;}//a와 b를 교환 void BubbleSort(int *base, int n); int main(void) { int arr[10] = { 9,4,3,10,5,8,7,6,2,1 }; BubbleSort(arr, 10); return 0; } void ViewArr(int *arr, int n); void BubbleSort(int *base, int n) { int i, j; ViewArr(base, n);//현재 상태 출력 for (i = n; i>1; i--)//정렬할 범위를 축소해 나갑니다. { for (j =..

[C언어 알고리즘] 2.3.2 버블 정렬 알고리즘 구현

[C언어 알고리즘] 2.3.2 버블 정렬 알고리즘 구현이번에는 버블 정렬 알고리즘을 구현해 보아요. 버블 정렬(base:배열의 시작 주소, n: 원소 개수, compare:비교 논리) 반복(i:=n; i>1 ; i:= i-1) 반복(j:=1; j 0) 교환(base[j-1],base[j]) //버블 정렬(Bubble Sort) #include 먼저 두 개의 값을 교환하는 매크로 함수를 작성합니다. #define SWAP(a,b) {int t; t = a; a=b; b=t;}//a와 b를 교환 이 책에서는 정수 형식 배열을 정렬하는 함수를 만들기로 할게요. 원소 형식에 관계없이 정렬하는 방법은 디딤돌 정렬 알고리즘 (C언어)를 참고하세요. void BubbleSort(int *base, int n); in..

[C언어 알고리즘] 2.3.1 버블 정렬 알고리즘 성능 분석

[C언어 알고리즘] 2.3.1 버블 정렬 알고리즘 성능 분석 버블 정렬 알고리즘 성능을 분석합시다. 버블 정렬(base:배열의 시작 주소, n: 원소 개수, compare:비교 논리) 반복(i:=n; i>1 ; i:= i-1) 반복(j:=1; j 0) 교환(base[j-1],base[j]) n 개의 원소인 배열을 정렬할 때 비교에 걸리는 수행 시간을 T'(n)이라고 합시다. 버블 정렬의 내부 반복문에서 비교에 걸리는 시간을 S(n)이라고 하면 S(n)=n-1입니다. 따라서 T'(n)은 다음과 같습니다. T'(n) = S(n) + S(n-1) + ... + S(2) = (n-1) + (n-2) + (n-3) + ... + 3 + 2 + 1 따라서 버블 정렬의 비교에 걸리는 시간은 O(n^2)이라고 말할 수..

[C언어 알고리즘] 2.3 버블 정렬(Bubble Sort) 알고리즘

[C언어 알고리즘] 2.3 버블 정렬(Bubble Sort) 알고리즘 이번에는 반복적인 방법으로 해결하는 버블 정렬 알고리즘을 살펴봅시다. 정렬 알고리즘은 배열의 자료를 원하는 순으로 배치하는 것을 말합니다. 이를 위해 입력 인자로 정렬할 자료들이 있는 배열의 시작 주소와 원소 개수, 비교 알고리즘을 전달합니다. 그리고 수행 후에는 배열 내의 자료들이 원하는 순서로 보관한 상태여야 합니다. 이 중에 버블 정렬은 앞에서부터 이웃하는 원소의 값을 비교하여 위치를 교환하는 것을 반복합니다. 이를 끝까지 수행하면 제일 큰 값이 맨 뒤에 위치합니다. 그리고 정렬할 개수를 1 줄인 후에 다시 반복합니다. 정렬할 원소의 개수가 1이면 모든 작업을 완료합니다. 버블 정렬(base:배열의 시작 주소, n: 원소 개수, ..

[디딤돌 자료구조와 알고리즘 with C] 2. 3 버블 정렬 알고리즘

2. 3 버블 정렬 알고리즘 이번에는 반복적인 방법으로 해결하는 버블 정렬 알고리즘을 살펴봅시다. 정렬 알고리즘은 배열의 자료를 원하는 순으로 배치하는 것을 말합니다. 이를 위해 입력 인자로 정렬할 자료들이 있는 배열의 시작 주소와 원소 개수, 비교 알고리즘을 전달합니다. 그리고 수행 후에는 배열 내의 자료들이 원하는 순서로 보관한 상태여야 합니다. 이 중에 버블 정렬은 앞에서부터 이웃하는 원소의 값을 비교하여 위치를 교환하는 것을 반복합니다. 이를 끝까지 수행하면 제일 큰 값이 맨 뒤에 위치합니다. 그리고 정렬할 개수를 1 줄인 후에 다시 반복합니다. 정렬할 원소의 개수가 1이면 모든 작업을 완료합니다. 버블 정렬(base:배열의 시작 주소, n: 원소 개수, compare:비교 논리) 반복(i:=n;..

2.2 거품 정렬 (Bubble Sort) [디딤돌 자료구조와 알고리즘 with C++]

2.2 거품 정렬(Bubble Sort) 이번에는 반복적인 방법으로 해결하는 거품 정렬(Bubble Sort) 알고리즘을 살펴볼게요. 거품 정렬은 앞에서부터 이웃하는 원소의 값을 비교하여 위치를 교환하는 것을 반복해요. 이를 끝까지 수행하면 제일 큰 값이 맨 뒤에 위치합니다. 그리고 정렬할 개수를 1 줄인 후에 다시 반복해요. 정렬할 개수가 1일 때까지 반복하면 정렬 작업이 끝나요. 거품 정렬(base:배열의 시작 주소, n: 원소 개수, compare:비교 논리) 반복(i:=n->1) 반복(j:=1->i) 조건(compare(base[j-1], base[j]) > 0) 교환(base[j-1],base[j]) 예: 2 9 4 1 5 6 8 3 7 (정렬 전, n:9) 2 9 4 1 5 6 8 3 7 (i..

반응형