카테고리 없음

비교 함수를 이용한 내림차순 정렬에 대한 예제 및 코드

마스터 555 2023. 10. 14. 11:53
내림차순

비교함수를 이용한 내림차순 정렬

추가적으로, 비교함수를 인수로 주지 않았을 때는 디폴트 값인 오름차순으로 정렬됩니다.

비교함수는 정렬하고자 하는 벡터에 저장된 값의 타입을 매개변수로 받으며, 리턴 값은 bool 형식입니다.

만약 특정한 조건에 따라 내림차순으로 정렬하고자 한다면 비교함수를 작성하여 인수로 전달해야 합니다.



아래 예시에서는 객체의 price 값을 기준으로 오름차순으로 정렬되었습니다.
 

이름가격
상품110000
상품215000
상품35000

 
위 테이블은 이름과 가격을 저장한 벡터를 price 값 기준으로 오름차순으로 정렬한 결과를 보여줍니다.

내림차순으로 정렬하고자 할 때는 비교함수를 작성하여 인수로 전달하면 됩니다.

 

배열의 element가 객체일 때의 예제

다음 방법을 사용하여 배열의 element가 객체인 경우에 대한 예제를 살펴보겠습니다. 이 경우, 유니코드가 대문자가 소문자보다 앞서기 때문에 소문자로 된 문자열은 대문자로 된 문자열보다 앞에 정렬됩니다.
문자열을 비교하는 방법에 대해서는 아래 링크를 참조하세요.
문자열의 오름차순 정렬을 수행할 때에는 파라미터를 입력하지 않아도 됩니다.

이는 자바스크립트의 기본 동작입니다.
여기에서는 배열을 내림차순으로 정렬하도록 하였습니다.
 

내림차순으로 배열 정렬 및 원소 추가

아래의 표는 배열을 내림차순으로 정렬하고 원소를 추가한 예시입니다.


 

배열정렬 후원소 추가 후
[1, 2, 3, 5][5, 3, 2, 1][1, 2, 3, 4, 5]

 
위의 예시에서는 배열을 오름차순으로 정렬한 후에 arr1에 원소 4를 추가하였습니다. 정렬된 배열 arr2는 arr1을 가리키고 있기 때문에, arr2의 배열을 출력하여도 element 4가 추가된 것을 확인할 수 있습니다. 이로써 원본 배열인 arr1에 element 4를 추가하였습니다.

 

내림차순 정렬 함수

원본 배열을 가리키는 배열을 리턴합니다. 예를 들어, 숫자를 오름차순으로 정렬하는 예제를 위와 같이 단순화 할 수도 있습니다. 주어진 배열을 오름차순으로 정렬하였습니다.





그러나, 이 순서는 우리가 기대했던 순서가 아닙니다. 따라서, 유니코드 순서에 따라 [1, 10, 2, 3]으로 정렬되었습니다. 이때, 원본 배열인 arr이 정렬되고, 리턴하는 값 또한 원본 배열인 arr을 가리키고 있음에 유의하세요.




내림차순으로 정렬된 배열을 리턴하는 compareFunction의 규칙

compareFunction 규칙에 따라서 정렬된 배열을 리턴합니다.

만약 0을 리턴하면, a와 b의 순서를 변경하지 않습니다. 이 함수가 리턴하는 값이 0보다 클 경우, b가 a보다 앞에 오도록 정렬합니다.
compareFunction 함수는 두 개의 배열 element를 파라미터로 입력 받습니다.

이 값이 생략되면, 배열의 element들은 문자열로 취급되어, 유니코드 값 순서대로 정렬됩니다.
 

인자 (a, b)리턴 값
a가 b보다 작을 때양수
a가 b보다 큰 때음수
a와 b가 같을 때0

 
내림차순으로 정렬된 배열을 리턴하는 compareFunction 함수를 사용할 때에는, 리턴 값이 0보다 클 경우, a와 b의 순서를 변경하여 정렬됩니다. 이 함수는 주어진 배열의 element들을 정렬하기 위해 사용되며, 배열을 원하는 순서로 재정렬할 수 있게 합니다.

내림차순으로 정렬된 배열을 사용하는 경우, 배열의 element들은 유니코드 값의 내림차순으로 정렬됩니다. 이는 문자열이나 숫자형 element들을 간단하게 대소 비교하여 정렬하는 데 사용됩니다.
따라서, compareFunction 함수를 잘 활용하여 원하는 순서대로 배열을 정렬할 수 있습니다.

이를 통해 다양한 데이터 처리와 비교 작업을 손쉽게 수행할 수 있게 됩니다.
내림차순 정렬은 데이터 처리의 효율성을 높이는 데 큰 도움이 되며, 정렬된 배열을 활용한 작업 시 유용하게 사용될 수 있습니다.

내림차순 정렬에 대한 코드

다음은 내림차순 정렬에 대한 코드입니다:
코드:

  1. 먼저, 정렬하고자 하는 리스트를 선언합니다.

  2. 내장 함수인 sorted()를 사용하여 리스트를 내림차순으로 정렬합니다. 정렬 기준으로는 매개변수를 통해 지정할 수 있습니다.
  3. 정렬된 리스트를 다시 변수에 할당하고 출력합니다.

다음 코드를 참고하시면 됩니다:

list = [10, 5, 8, 3, 2]
sorted_list = sorted(list, reverse=True)
print(sorted_list)

위 코드는 전체 코드입니다. 이것으로 내림차순 정렬에 대한 포스팅을 마치겠습니다. 내림차순은 이전에 만든 오름차순 정렬 프로그램에서 기호 하나만 바꾸면 끝입니다.

정리:
이번에는 내림차순으로 정렬하는 프로그램을 만들어 보았습니다. 오름차순 정렬은 passing-story.tistory.com/179 에서 참고하실 수 있습니다. 죄송하지만 503 오류가 발생한다면 서버측에 문제가 있을 수 있습니다.

더 자세한 내용은 해당 링크를 참고해주세요. 내림차순 정렬은 기존의 코드에서 단순히 기호를 바꾸는 것으로 충분합니다.
 
 
https://luckyminy1027.tistory.com 

건강 프로젝트

건강/다이어트/건강꿀팁/다이어트식단/생활건강/운동요법/민간요법

luckyminy1027.tistory.com