Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 통계학
- c++
- 운영체제
- Stack
- directx
- 아두이노
- html
- arduino compiler
- C언어
- Visual Micro
- Arduino
- WinAPI
- set
- vector
- stl
- LineTracer
- priority_queue
- Array
- 수광 소자
- list
- Deque
- 아두이노 소스
- 컴퓨터 그래픽스
- 자료구조
- map
- 라인트레이서
- 시스템프로그래밍
- 아두이노 컴파일러
- queue
- Algorithm
Archives
- Today
- Total
Kim's Programming
1966. 숫자를 정렬하자 본문
1966. 숫자를 정렬하자
풀이 방법
버블 소트를 직접 구현하여 풀었다. 하지만 사실 std::sort를 사용하는것이 제일 빠르다 버블소트는 O(n^2)인데 std::sort는 O(nlongn)이다. 하지만 Container를 사용하는 것 보다는 배열이 더 빠른경우가 많다.
<코드>
#include<iostream> using namespace std; void Swap(int *left, int *right) { int temp; temp = *right; *right = *left; *left = temp; } void BubbleSort(int *targetArray, int length) { bool change = false; for (int pass = 0; pass <= length + 1; pass++) { for (int i = 0; i < length - pass - 1; i++) { if (targetArray[i] > targetArray[i + 1]) { Swap(&targetArray[i], &targetArray[i + 1]); change = true; } } if (change == false) return; } } int main(int argc, char** argv) { int test_case; int T; cin >> T; for (test_case = 1; test_case <= T; ++test_case) { int length; std::cin >> length; int* dataArray = new int[length] {0, }; for (int i = 0; i < length; i++) std::cin >> dataArray[i]; BubbleSort(dataArray, length); std::cout << "#" << test_case<<" "; for (int i = 0; i < length; i++) std::cout << dataArray[i] << " "; std::cout << "\n"; } return 0;//정상종료시 반드시 0을 리턴해야합니다. }
두 번째
#include <iostream> #include <algorithm> #include <vector> using namespace std; int main(int argc, char** argv) { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::cout.tie(nullptr); int test_case; int T; cin >> T; for (test_case = 1; test_case <= T; ++test_case) { int n; std::cin >> n; std::vector<int> vec(n); for (int i = 0; i < n; i++) std::cin >> vec[i]; std::sort(vec.begin(), vec.end()); std::cout << "#" << test_case << " "; for (int i = 0; i < n; i++) std::cout << vec[i] << " "; std::cout << "\n"; } return 0;//정상종료시 반드시 0을 리턴해야합니다. }
'SW ExpertAcademy > D2' 카테고리의 다른 글
1974. 스도쿠 검증 (0) | 2018.12.01 |
---|---|
1970. 쉬운 거스름돈 (0) | 2018.12.01 |
1961. 숫자 배열 회전 (0) | 2018.12.01 |
1959. 두 개의 숫자열 (0) | 2018.12.01 |
1954. 달팽이 숫자 (0) | 2018.12.01 |