반응형
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <stack>
#include <vector>
#include <math.h>
using namespace std;

int data[10], tmp[10];

void divide(int lt, int rt){
	int mid, p1, p2, p3;
	if(lt<rt){
		mid = (lt+rt)/2;
		divide(lt, mid);
		divide(mid+1, rt);
		p1=lt;
		p2=mid+1;
		p3=lt;
		while(p1<=mid && p2<=rt){
			if(data[p1]<data[p2]) tmp[p3++]=data[p1++];
			else tmp[p3++]=data[p2++];
		}
		while(p1<=mid){
			tmp[p3++]=data[p1++];
		}
		while(p2<=rt){
			tmp[p3++]=data[p2++];
		}			
		for(int i=lt; i<=rt; i++){
			data[i] = tmp[i];
		}
		
		
	}
		
}


int main() {
	//freopen("input.txt.txt","rt",stdin);
	int n, i;
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		scanf("%d",&data[i]);
	}
	divide(1,n);
	for(i=1;i<=n;i++){
		printf("%d",data[i]);
	}
	return 0;
	
	
	return 0;	
}

'Algorithm > 정렬' 카테고리의 다른 글

삽입정렬  (0) 2022.01.06
선택정렬  (0) 2022.01.05
반응형
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <vector>

int a[101];
using namespace std;
int main() {
	//freopen("input.txt.txt","rt",stdin);
	int n, tmp, i, j;
	scanf("%d",&n);
	
	for(i=0; i<n;i++){
		scanf("%d",&a[i]);
	}
	
	for(i=1; i<n; i++){
		tmp=a[i];
		for(j=i-1; j>=0; j--){
			if(a[j]>tmp) a[j+1] = a[j];
			else break;
		}
		a[j+1]=tmp;
	}
	
	for(i=0; i<n;i++){
		printf("%d ",a[i]);
	}
	
	
	
	
	return 0;
}

 

'Algorithm > 정렬' 카테고리의 다른 글

병합정렬  (0) 2022.01.14
선택정렬  (0) 2022.01.05
반응형
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;
int main() {
	freopen("input.txt.txt","rt",stdin);
	int a[100], n, idx, i, j, tmp;
	scanf("%d", &n);
	for(i=0; i<n; i++){
		scanf("%d", &a[i]);
	}
	
	for(i=0; i<n-1; i++){
		idx = i;
		for(j=i+1; j<n;j++){
			if(a[j]<a[idx]) idx =j;
		}
		tmp = a[i];
		a[i] = a[idx];
		a[idx] = tmp;
	}
	
	
	for(i=0; i<n; i++){
		printf("%d ", a[i]);
	}
	
	
	
	return 0;
}

cpp

'Algorithm > 정렬' 카테고리의 다른 글

병합정렬  (0) 2022.01.14
삽입정렬  (0) 2022.01.06

+ Recent posts