algorithm (2) 썸네일형 리스트형 divide_pivot 함수 pivoting algorithm 이 divide_pivot 함수는 퀵소트의 개념을 응용하여 스택을 세 부분으로 나누는 역할을 합니다. 피벗 설정: c p1 = stacks->max_size / 3; p2 = (stacks->max_size / 3) * 2; 스택을 3등분하기 위해 두 개의 피벗(p1, p2)을 설정합니다. 반복 처리: c while (times max_size) 스택의 모든 요소를 한 번씩 처리합니다. 요소 분류: c tmp = pop_top(stacks->stack_a); if (tmp->val { push_top(stacks->stack_a, tmp); pb(stacks); if (tmp->val rb(stacks); } else { push_top(stacks->sta.. 상대적 순위로 변환 최적화 | Optimizing by relative ranking transformation indexing 함수는 원본 리스트의 값들을 그들의 순위(인덱스)로 변환하는 작업을 수행합니다. 이 함수를 단계별로 상세히 설명하겠습니다:함수 선언:t_var *stacks를 매개변수로 받습니다. 이는 리스트와 관련 정보를 포함하는 구조체입니다. 변수 선언:idx_list: 새로운 인덱스 값들을 저장할 정수 배열 포인터idx: 루프 카운터 및 순위 할당에 사용될 변수max_idx: find_list_max 함수의 반환값을 저장할 변수 메모리 할당:idx_list에 stacks->list_size 만큼의 정수 배열 공간을 동적 할당합니다.할당 실패 시 ps_error() 함수를 호출합니다. 인덱싱 과정:idx를 stacks->list_size - 1로 초기화합니다 (가장 큰 순위부터 시작).루프를 통해 모.. 이전 1 다음