본문 바로가기

전체 글

버블 정렬 알고리즘을 이용해 int 배열을 오름차순으로 정렬하는 함수 //버블 정렬 알고리즘을 이용해 int 배열을 오름차순으로 정렬하는 함수void bubbleSort(int A[], int n) {for (int i = n - 1; i > 0; i--) {for (int j = 0; j A[j + 1])swap(A[j], A[j + 1]);}} 더보기
함수 포인터를 매개변수로 받는 삽입정렬 함수 inline int ascend(int x, int y) { return y - x; }//오름차순 비교함수inline int descend(int x, int y) { return x - y; }//오름차순 비교함수 // 함수 포인터를 매개변수로 받는 삽입정렬 함수void insertionSortFn(int A[], int n, int(*f)(int, int)){for (int i = 1; i = 0 && f(A[j], key) < 0; j--)A[j + 1] = A[j];A[j + 1] = key;}} 더보기
삽입정렬 알고리즘을 이용해 int 배열을 오름차순으로 정렬하는 함수 - 안정 정렬 //삽입정렬 알고리즘을 이용해 int 배열을 오름차순으로 정렬하는 함수 - 안정 정렬void insertionSort(int A[], int n){for (int i = 1; i = 0 && A[j] > key; j--)A[j + 1] = A[j];// 레코드의 오른쪽으로 이동A[j + 1] = key;}} 더보기
랜덤 함수를 이용한 함수, 배열을 출력하는 함수 // 랜덤 함수를 이용하여 int 배열을 0~max-1 의 값으로 무작위로 채우는 함수static void initRandom(int list[], int n, int max = 100) {for (int i = 0; i < n; i++)list[i] = rand() % max;} // 배열을 화면에 보기 좋게 출력하는 함수. 디폴트 매개변수 사용static void printArray(int arr[], int n, const char *str = "Array") {printf("%s = ", str);for (int i = 0; i < n; i++)printf("%3d", arr[i]);printf("\n");} 더보기
선택정렬 알고리즘을 이용해 int 배열을 오름차순으로 정렬하는 함수 //두 정수를 교환하는 함수 : inline 함수. 매개변수로 레퍼런스형 사용.inline void swap(int& x, int& y) {int t = x;x = y;y = t;} //선택정렬 알고리즘을 이용해 int 배열을 오름차순으로 정렬하는 함수void selectionSort(int A[], int n) {for (int i = 0; i < n - 1; i++) {// n-1번만 반복int least = i;for (int j = i + 1; j < n; j++)//최솟값 탐색if (A[j] < A[least]) least = j;swap(A[i], A[least]);}} 더보기
WGraphFloyd.h : Floyd 알고리즘의 최단 경로 탐색 기능이 추가된 그래프 #pragma once#ifndef ___WGraphFloyd#define ___WGraphFloyd//WGraphFloyd.h : Floyd 알고리즘의 최단 경로 탐색 기능이 추가된 그래프#include "WGraph.h"class WGraphFloyd : public WGraph{int A[MAX_VTXS][MAX_VTXS];// 최단 경로 거리public:void ShortestPathFloyd() {for (int i = 0; i < size; i++)for (int j = 0; j < size; j++)A[i][j] = getEdge(i, j); for (int k = 0; k < size; k++) {for (int i = 0; i < size; i++)for (int j = 0; j < si.. 더보기
[C++] 백준 1057번 : 토너먼트 https://www.acmicpc.net/problem/1057 #include #include using namespace std; int main() { int n;int m1, m2;cin >> n >> m1 >> m2; n--;m1--;m2--; int tmp = 0;while (1) {if (n >= 2){n /= 2;tmp++;}elsebreak;} int round = tmp + 1;int result = 0, flag = 0;while (flag != 1) {(m1 / (int)pow(2, tmp)) == (m2 / (int)pow(2, tmp)) ? result++ : flag = 1;tmp--;}round -= result; cout 더보기
WGraphDijkstra.h : Dijkstra알고리즘의 최단 경로 탐색 기능이 추가된 그래프 #pragma once#ifndef ___WGraphDijkstra#define ___WGraphDijkstra//WGraphDijkstra.h : Dijkstra알고리즘의 최단 경로 탐색 기능이 추가된 그래프#include "WGraph.h" class WGraphDijkstra : public WGraph {int dist[MAX_VTXS];// 시작노드로부터의 최단경로 거리bool found[MAX_VTXS];// 방문한 정점 표시public://방문하지 않은 정점들 중에서 최단경로 거리가 가장 작은 정점을 찾아 반환int chooseVertex() {int min = INF;int minpos = -1;for(int i=0;i 더보기