그냥 게임개발자
TArray - HeapSort 본문
소팅
- 배열은 Sort 함수를 호출하는 것으로 간단히 소팅 가능
StrArr.Sort();
// StrArr == ["!", "Brave", "Hello", "of", "Tomorrow", "World"];
- 여기서 엘리먼트 유형 연산자< 를 사용해서 값을 소팅합니다.
- FString의 경우 대소문자 구분 없이 사전식 비교를 한다.
StrArr.Sort([](const FString& A, const FString& B)
{
// 길이 별로 소팅
return A.Len() < B.Len();
});
// StrArr == ["!", "of", "Hello", "Brave", "World", "Tomorrow"];
- 참고로 길이가 같은 "Hello", "Brave", "World" 스트링 셋의 상대 순서가 기존에 비해 바뀐 것을 볼수가 있다.
왜냐하면 Sort는 동등한(, 즉 길이가 같은) 엘리먼트의 상대 순서를 동일하게 보장하지 않는 비안정적인 것이기 때문- Sort는 일종의 간단 소팅 기능으로 구현된 것
HeapSort
- 이진 술부가 있든 없든, 힙 소팅에 사용 가능.
- 이겅싀 사용 여부는 데이터의 종류와 Sort함수에 비할 때 Sorting의 효율성에 따라 달라짐.
- Sort처럼 HeapSort도 안정적이지 못함
- 위에서 Sort 대신 HeapSort를 사용한 결과는 이렇다.
StrArr.HeapSort([](const FString& A, const FString& B)
{
return A.Len() < B.Len();
});
// StrArr == ["!", "of", "Hello, "Brave", "World", "Tomorrow"]
'Unreal스터디 > TArray' 카테고리의 다른 글
TArray - Num (0) | 2024.01.02 |
---|---|
TArray - StableSort (0) | 2024.01.02 |
TArray - 반복 처리 (0) | 2024.01.02 |
TArray - SetNum (0) | 2024.01.02 |
TArray - Insert (0) | 2024.01.02 |