Nếu độ dài các cạnh đã được sắp xếp thì có thể sử dụng một biến thể của thuật toán Dijkstra để tìm các đường đi rộng nhất từ một đỉnh nguồn cố định tới tất cả các đỉnh khác trong thời gian tuyến tính. Ý tưởng chính ở đây là trong bài toán đường đi rộng nhất, thứ tự các đỉnh được xem xét trong thuật toán chính là một dãy con tăng dần của danh sách các cung sắp xếp theo trọng số. Do đó hàng đợi ưu tiên của thuật toán Dijkstra trong trường hợp này có thể thay bằng một mảng kích thước m lưu trữ các cung của đồ thị theo trọng số tăng dần. Phương pháp này cho phép tìm
thị. Trong mỗi lượt, thuật toán chia tập S thành một danh sách các tập con được sắp thứ tự S1, S2,... (các số trong tập trước nhỏ hơn hoặc bằng các số trong tập sau) có kích thước xấp xỉ nhau. Số lượng tập hợp con được chọn sao cho các giá trị để phân chia S thành các tập con có thể được xác định bằng cách lặp đi lặp lại việc tìm phần tử trung vị trong thời gian O(m). Sau đó, thuật toán thay trọng số của các cung trên đồ thị bằng số thứ tự của tập chứa nó. Do ta đã có danh sách các các cung sắp xếp theo trọng số mới, có thể tìm đường đi rộng nhất trong thời gian tuyến tính theo kết quả ở trên và do đó xác định được cung hẹp nhất của đường đi nằm trong tập nào. Sau đó, thuật toán thay tập S bằng tập Si đã được xác định là chứa cung hẹp nhất trên đường, và lặp lại các bước trên. Số lượng tập hợp mà ta có thể chia S tăng theo hàm mũ sau mỗi lần lặp nên số lần lặp là O(log*n). Tổng thời gian, do đó, là O(m log*n). Khi các trọng số là số nguyên, bước lặp đi lặp lại việc tìm kiếm trung vị có thể thay bằng kĩ thuật phân chia danh sách bởi Han & Thorup (2002), cho phép chia S thành tập con Si trong một bước và toàn bộ thuật toán chạy trong thời gian tuyến tính.
Ghi chú
[1]
[1] Cụ thể hơn, trường hợp duy nhất phương pháp Schulze không thể phân định người thắng cuộc là khi hai ứng viên có đường đi rộng bằng nhau đi tới nhau
[2] Xem Jesse Plamondon-Willard, Board election to use preference voting, tháng 5 năm 2008; Mark Ryan, 2008 Wikimedia Board Election results, tháng 6 năm 2008; Bầu cử hội đồng năm 2008, tháng 6 năm 2008; và Bầu cử hội đồng năm 2009, tháng 8 năm 2009.
[3]
59