알파카징징이 알파카징징이 코딩하는 알파카

알고리즘_9_C++ STL sort() 함수 다루기 ①

» writing

K 실전 알고리즘 강좌(Algorithm Programming Tutorial) 동빈나 님 수업을 참고하여 작성하였습니다

9_C++ STL sort() 함수 다루기 ①

정의


C++ STL sort() 함수 다루기 ①

1. sort() 함수의 기본 사용법
	: 오름차순 정렬
	: sort(배열의 시작점 주소, 마지막 주소 +1)

1) sort() 함수

#include <iostream>
#include <algorithm>

using namespace std;

int main(void ){
	int a[10] = { 9, 3, 4,5, 1, 10, 8, 6,7, 2};
	sort(a, a+10);
	for (int i =0; i < 10; i++) {
		cout << a[i] << ' ';
	}
}
// 1 2 3 4 5 6 7 8 9 10

2) compare() 함수

#include <iostream>
#include <algorithm>

using namespace std;

bool compare(int a, int b) {
	return a > b; // 내림차순 
	return a < b; // 오름차순 
}
int main(void ){
	int a[10] = { 9, 3, 4,5, 1, 10, 8, 6,7, 2};
	sort(a, a+10, compare);
	for (int i =0; i < 10; i++) {
		cout << a[i] << ' ';
	}
}
// 1 2 3 4 5 6 7 8 9 10
// 10 9 8 7 6 5 4 3 2 1

3) 특정한 변수를 기준으로 정렬(데이터 묶어서 정렬)

#include <iostream>
#include <algorithm>

using namespace std;

class Student {
public :
	string name;
	int score;
	Student(string name, int score) {
		this->name = name;
		this->score = score;
	}
	// 정렬 기준은 점수가 작은 순서
	bool operator < (Student & student) {
		return this->score < student.score;
	}
};

int main(void) {
	Student student[] = {
		Student("이가은", 90),
		Student("권태훈", 99),
		Student("전정국", 95),
		Student("김석진", 97),
		Student("민윤기", 92) 
		};
		sort(student, student + 5);
		for (int i = 0; i < 5; i ++) {
			cout << student[i].name << " ";
		}	 
}
// 이가은 민윤기 전정국 김석진 권태훈