Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- xcz
- 코드게이트
- 정보보호
- 자료구조
- 포너블
- kangsecu
- C언어
- 프로그래밍
- 문제풀이
- DVP
- 버그헌팅
- 워게임
- wargame.kr
- hacking
- nefus
- 시스템
- webhacking.kr
- CTF
- 네퓨즈
- webhacking
- 웹해킹
- 해킹
- 블록체인
- WarGame
- 보안
- 버그바운티
- Pwnable
- 정보보안
- 선린인터넷고등학교
- 포렌식
Archives
- Today
- Total
kangsecu's B1og
자료구조 - sorting 본문
bubble sorting
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 10000
#define SWAP(x,y,t)((t)=(x),(x)=(y),(y)=(t))
int i;
int list[MAX_SIZE];
void buble_sort(int list[],int n){
int cntA, cntB, temp;
for(cntA = n-1;cntA >0; cntA--){
for (cntB=0;cntB<cntA;cntB++){
if(list[cntB]>list[cntB+1])
SWAP(list[cntB],list[cntB+1],temp);
}
}
}
void main(){
int i;
int list[MAX_SIZE];
int n =MAX_SIZE;
for(i=0;i<n;i++)
list[i]= rand()%n;
buble_sort(list,n);
for(int i=0;i<n;i++)
printf("%d\n",list[i]);
}
selection sorting
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 10000
#define SWAP(x, y, t) ( (t)=(x), (x)=(y), (y)=(t) )
int list[MAX_SIZE];
int n;
void selection_sort(int list[],int n)
{
int cnta,cntb,least,temp;
for(cnta=0;cnta<n;cnta++){
least = cnta;
for(cntb=cnta+1; cntb<n;cntb++){
if(list[cntb] < list[least]) least=cntb;
SWAP(list[cnta] , list[least],temp);
}
}
}
int main()
{
int i;
n = MAX_SIZE;
for(i=0;i<n;i++)
list[i]=rand() % n;
selection_sort(list,n);
for(int i=0;i<n;i++)
printf("%d\n",list[i]);
}
Insertion sorting
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100000
#define SWAP(x,y,t)((t)=(x),(x)=(y),(y)=(t))
int list[MAX_SIZE];
int n;
void insertion_sort(int list[] , int n){
int cntA,cntB,key;
for(cntA =2;cntA <n;cntA++){
key = list[cntA];
for(cntB=cntA-1; cntB>=0 && list[cntB]>key;cntB--){
list[cntB+1] = list[cntB];
}
list[cntB+1] = key;
}
}
void main(){
int i;
int n = MAX_SIZE;
for(i=0; i<n;i++)
list[i] = rand ()%n;
insertion_sort(list,n);
for(i=0;i<n;i++)
printf("%d\n",list[i]);
}
Quick Sorting
#include <stdio.h>
#define MAX_SIZE 100
int n = 9;
int list[MAX_SIZE] = {9, 8, 7, 6, 5, 4, 3, 2, 1};
#define SWAP(x, y, t) ((t)=(x), (x)=(y),(y)=(t))
void print(int list[], int n) {
int i;
for (i = 0; i < n; i++) {
printf("%d ", list[i]);
}
printf("\n");
}
int partition(int list[], int left, int right) {
int pivot, temp;
int low, high;
low = left;
high = right + 1;
pivot = list[left];
do {
do
low++;
while (low <= right && list[low] < pivot);
do
high--;
while (high >= left && list[high] > pivot);
if(low<high) SWAP(list[low],list[high],temp);
} while (low < high);
SWAP(list[left], list[high], temp);
return high;
}
void quick_sort(int list[], int left, int right) {
if (left < right) {
int q = partition(list, left, right);
print(list, 9);
quick_sort(list, left, q - 1);
quick_sort(list, q + 1, right);
}
}
int main(int argc, const char *argv[]) {
quick_sort(list, 0, 8);
return 0;
}
'Programming > c언어' 카테고리의 다른 글
자료구조 -BFS,DFS etc.. (0) | 2020.04.19 |
---|---|
c언어 자료구조 - 괄호식검사 (0) | 2019.03.25 |
c언어 자료구조 - stack (0) | 2019.03.25 |
C언어 자료구조 - 링크드리스트 (0) | 2019.03.22 |
C언어 - 조건문 정리 (1) | 2017.12.18 |