Trong chương trình này, một danh sách được chấp nhận với hỗn hợp các yếu tố lẻ và chẵn và dựa trên việc phần tử chẵn hay lẻ, nó được chia thành hai danh sách khác nhau.
Examples:
Input : [8, 12, 15, 9, 3, 11, 26, 23] Output : Even lists: [8, 12, 26] Odd lists: [15, 9, 3, 11, 23] Input : [2, 5, 13, 17, 51, 62, 73, 84, 95] Output : Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]
Được đề xuất: Vui lòng thử cách tiếp cận của bạn trên {IDE} trước, trước khi chuyển sang giải pháp.{IDE} first, before moving on to the solution.
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]0
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]7
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]22____23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]7
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]8
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]9
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}7
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}8
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]0
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]4
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]9
Array after segregation 12 34 90 8 9 45 30
Các
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];2
Output:
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]
Giải pháp ngắn hơn:
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]0
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]7
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]4
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]9
Array after segregation 12 34 90 8 9 45 30
Các
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];2
Output:
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]
Đưa ra một mảng a [], viết một hàm tách biệt và số lẻ. Các chức năng nên đặt tất cả các số chẵn lên hàng đầu, và sau đó là số lẻ.
Example: Example:
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}
Trong đầu ra, thứ tự của các số có thể được thay đổi, tức là, trong ví dụ trên, 34 có thể đến trước 12 và 3 có thể đến trước 9.
Vấn đề rất giống với bài viết cũ của chúng tôi tách 0s và 1 trong một mảng, và cả hai vấn đề này là sự thay đổi của vấn đề cờ quốc gia Hà Lan nổi tiếng.
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]
Implementation:
C++
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]39
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]40
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]41
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]44
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]46
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]48
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]50
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]52
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]54
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]58
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]61
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]66
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]71
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]73
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]61
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]80
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]68
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]73
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]44
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]46
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]95
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]99
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]01
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]03
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]06
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]10
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]13
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]14
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]15
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]14
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]17
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]20
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]22
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]24
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]25
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]29
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]31
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]36
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
C
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]38
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]44
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]46
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]48
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]50
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]52
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]54
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]58
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]61
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]62
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]67
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]73
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]61
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]80
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]68
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]73
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]44
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]46
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]95
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]99
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]01
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]03
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]06
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]10
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]13
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]14
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]15
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]14
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]17
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]20
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]22
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}20
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]25
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]29
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}20
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}30
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}31
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]36
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Java
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}36
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}37
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}38
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}39
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]50
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}46
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}51
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}53
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]61
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}63
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]9
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}65
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}67
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]68
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}72
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]9
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}65
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}67
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]73
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]61
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}86
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}88
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}90
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]68
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]73
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]02
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]05
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Các
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]28
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]25
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]35
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]37
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]39
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Python
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]0
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]46
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]48
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]51
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]522____453
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]54________
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]58
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]61__
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]70
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]71
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]76
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]8
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]9
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]85
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]54
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]91
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]92
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]93
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]95
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]92
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]70
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]71
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]92
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]85
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Array after segregation 12 34 90 8 9 45 304
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]54
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Array after segregation 12 34 90 8 9 45 307
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Array after segregation 12 34 90 8 9 45 33
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]11
Array after segregation 12 34 90 8 9 45 35
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]13
Array after segregation 12 34 90 8 9 45 35
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]15
Array after segregation 12 34 90 8 9 45 355
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]17
Array after segregation 12 34 90 8 9 45 3555
Array after segregation 12 34 90 8 9 45 324
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]25
Array after segregation 12 34 90 8 9 45 328
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]3
Array after segregation 12 34 90 8 9 45 332
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2.
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]2
Array after segregation 12 34 90 8 9 45 340
C#
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]40
Array after segregation 12 34 90 8 9 45 342
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}38
Array after segregation 12 34 90 8 9 45 344
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]50
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Array after segregation 12 34 90 8 9 45 351
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Array after segregation 12 34 90 8 9 45 356
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]61
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}63
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]9
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}65
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}67
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]68
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]68
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]73
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]61
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}86
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}88
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}90
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]68
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]73
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]02
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]05
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Các
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
12 10 2 10 10 45 9 4507
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]25
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]35
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]37
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
12 10 2 10 10 45 9 4516
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Python
12 10 2 10 10 45 9 4522
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]0
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]46
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]48
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]51
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]522____453
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]54________
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]58
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]61__
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 33
12 10 2 10 10 45 9 4531
12 10 2 10 10 45 9 4553
12 10 2 10 10 45 9 4554
12 10 2 10 10 45 9 4531
12 10 2 10 10 45 9 4542
12 10 2 10 10 45 9 4534
12 10 2 10 10 45 9 4528
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
12 10 2 10 10 45 9 4531
12 10 2 10 10 45 9 4561
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 33
12 10 2 10 10 45 9 4534
12 10 2 10 10 45 9 4568
12 10 2 10 10 45 9 4554
12 10 2 10 10 45 9 4531
12 10 2 10 10 45 9 4542
12 10 2 10 10 45 9 4534
12 10 2 10 10 45 9 4528
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
12 10 2 10 10 45 9 4534
12 10 2 10 10 45 9 4576
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 33
12 10 2 10 10 45 9 4534
12 10 2 10 10 45 9 4568
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
12 10 2 10 10 45 9 4531
12 10 2 10 10 45 9 4542
12 10 2 10 10 45 9 4534
12 10 2 10 10 45 9 4528
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
12 10 2 10 10 45 9 4531
12 10 2 10 10 45 9 4561
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
12 10 2 10 10 45 9 4534
12 10 2 10 10 45 9 4576
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Các
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
12 10 2 10 10 45 9 4523
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];08
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];09
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];10
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];11
12 10 2 10 10 45 9 4528
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];15
12 10 2 10 10 45 9 4535
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];09
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];09
12 10 2 10 10 45 9 4535
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];11
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];11
12 10 2 10 10 45 9 4535
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];15
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
12 10 2 10 10 45 9 4525
12 10 2 10 10 45 9 4535
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];32
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];33
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]50
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 35
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];34
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];34
12 10 2 10 10 45 9 4535
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];36
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
12 10 2 10 10 45 9 4525
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]25
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3__
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];66
Even lists: [2, 62, 84]
Odd lists: [5, 13, 17, 51, 73, 95]
2template
BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];
45 12 10 2 10 10 45 9 45
25Array after segregation 12 34 90 8 9 45 3
3template
BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];
50__763Even lists: [2, 62, 84]
Odd lists: [5, 13, 17, 51, 73, 95]
32____Even lists: [2, 62, 84]
Odd lists: [5, 13, 17, 51, 73, 95]
26
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];67
JavaScript
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
12 10 2 10 10 45 9 4523
Array after segregation 12 34 90 8 9 45 324
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];71
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];72
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];73
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]61
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]62
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]67
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]73
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]61
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}88
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}90
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]68
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]73
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];72
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}86
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.10
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]26
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.10
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.16
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]25
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.10
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];72
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.12
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];71
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.26
start: the range of elements to reorder
end: the range of elements to reorder
pfn: User-defined predicate function object that defines
the condition to be satisfied if an element
is to be classified. A predicate takes single argument
and returns true or false.
Return Value:
Returns an iterator to the beginning of the elements
for which the predicate is false.
10Even lists: [2, 62, 84]
Odd lists: [5, 13, 17, 51, 73, 95]
1 start: the range of elements to reorder
end: the range of elements to reorder
pfn: User-defined predicate function object that defines
the condition to be satisfied if an element
is to be classified. A predicate takes single argument
and returns true or false.
Return Value:
Returns an iterator to the beginning of the elements
for which the predicate is false.
21
Array after segregation 12 34 90 8 9 45 3
Đầu ra O[n]
Auxiliary Space: O[1]
Độ phức tạp về thời gian: O [N] Không gian phụ trợ: O [1]Lomuto partition]:
C++
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]39
Thực hiện thay thế [phân vùng Lomuto]: & nbsp;
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]40
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]41
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.32
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]52
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.36
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.40
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.45
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.50
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.52
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.48
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]06
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.63
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.72
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.66
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]14
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]14
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]17
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]31
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84]
Odd lists: [5, 13, 17, 51, 73, 95]
2Even lists: [2, 62, 84]
Odd lists: [5, 13, 17, 51, 73, 95]
1 Algorithm: segregateEvenOdd[]
1] Initialize two index variables left and right:
left = 0, right = size -1
2] Keep incrementing left index until we see an even number.
3] Keep decrementing right index until we see an odd number.
4] If left < right then swap arr[left] and arr[right]
3Even lists: [2, 62, 84]
Odd lists: [5, 13, 17, 51, 73, 95]
45 start: the range of elements to reorder
end: the range of elements to reorder
pfn: User-defined predicate function object that defines
the condition to be satisfied if an element
is to be classified. A predicate takes single argument
and returns true or false.
Return Value:
Returns an iterator to the beginning of the elements
for which the predicate is false.
77
Java
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}36
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}37
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}38
Array after segregation 12 34 90 8 9 45 344
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.32
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]52
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.36
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
12 10 2 10 10 9 45 4500
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
12 10 2 10 10 9 45 4502
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]35
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
12 10 2 10 10 9 45 4509
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.50
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
12 10 2 10 10 9 45 4520
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
12 10 2 10 10 9 45 4522
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
12 10 2 10 10 9 45 4524
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
12 10 2 10 10 9 45 4512
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]9
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}65
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
12 10 2 10 10 9 45 4516
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]02
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
12 10 2 10 10 9 45 4535
Các
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.72
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
12 10 2 10 10 9 45 4559
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
12 10 2 10 10 9 45 4570
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Python3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]35
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
12 10 2 10 10 9 45 4568
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]0
12 10 2 10 10 9 45 4577
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
12 10 2 10 10 9 45 4579
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]54
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]22____23
Array after segregation 12 34 90 8 9 45 332
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
12 10 2 10 10 9 45 4590
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
12 10 2 10 10 9 45 4593
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]8
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]9
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
12 10 2 10 10 9 45 4579
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
12 10 2 10 10 9 45 4579
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]71
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]007
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]009
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]011
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]013
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]015
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]017
Các
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]041
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]037
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]52
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]53
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]051
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
12 10 2 10 10 45 9 4528
C#
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]40
Array after segregation 12 34 90 8 9 45 342
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}38
Array after segregation 12 34 90 8 9 45 344
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.32
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]065
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]066
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.36
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]073
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.45
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.48
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.50
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
12 10 2 10 10 9 45 4520
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
12 10 2 10 10 9 45 4522
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
12 10 2 10 10 9 45 4524
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]02
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]100
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]105
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]106
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]107
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]110
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.72
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.77
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]119
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
PHP
12 10 2 10 10 45 9 4522
12 10 2 10 10 45 9 4523
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]127
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]130
12 10 2 10 10 45 9 4528
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]134
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]135
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];15
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3______750
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 33
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]157
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]134
12 10 2 10 10 45 9 4561
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];15
12 10 2 10 10 45 9 4535
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 33
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]169
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 33
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]174
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 33
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]134
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]169
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 33
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]134
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]174
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];15
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
12 10 2 10 10 45 9 4525
12 10 2 10 10 45 9 4535
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];32
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]194
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]130
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]196
12 10 2 10 10 45 9 4525
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.32
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]130
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];51______750
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];45
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 33
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]220
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
JavaScript
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];67
12 10 2 10 10 45 9 4523
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]041
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];72
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]073
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]232
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]237
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.50
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
12 10 2 10 10 9 45 4520
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
12 10 2 10 10 9 45 4522
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
12 10 2 10 10 9 45 4524
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];72
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]254
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];72
12 10 2 10 10 9 45 4559
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.72
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]232
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]261
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.26
Đầu ra
12 10 2 10 10 45 9 45
Độ phức tạp về thời gian: O [N] Không gian phụ trợ: O [1] O[n]
Auxiliary Space: O[1]
Thực hiện thay thế [sử dụng phân vùng ổn định]: & nbsp;stable partition]:
Để thực hiện vấn đề trên, chúng tôi sẽ sử dụng ổn định_partition trong C ++. Thuật toán ổn định_partition [] sắp xếp trình tự được xác định theo bắt đầu và kết thúc sao cho tất cả các phần tử mà vị ngữ được chỉ định bởi PFN trả về đúng đến trước các phần tử mà vị ngữ trả về sai. Các phân vùng là ổn định. Điều này có nghĩa là thứ tự tương đối của chuỗi được bảo tồn.
Syntax:
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];
Parameters:
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.
Chức năng này cố gắng phân bổ một bộ đệm tạm thời. Nếu phân bổ thất bại, thuật toán kém hiệu quả hơn được chọn.
Dưới đây là việc thực hiện logic trên.
Code:
C++14
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]265
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]40
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]41
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]270
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]272
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]275
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]276
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]277
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]278
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]279
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]281
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]286
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]288
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]06
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]296
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]298
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]300
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]36
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Đầu ra
12 10 2 10 10 9 45 45
Độ phức tạp về thời gian: O [N] Không gian phụ trợ: O [1]
If enough extra memory is available, linear in the distance between first and last i.e
[O[N] ,where N is the distance between first and last]. It applies predicate [i.e 3rd parameter of above code] exactly once to each element, and performs up to that many element moves.
Thực hiện thay thế [sử dụng phân vùng ổn định]: & nbsp;N*log[N] element swaps [where N is the distance above]. It also applies predicate exactly once to each element.
Auxiliary Space: O[1]
Để thực hiện vấn đề trên, chúng tôi sẽ sử dụng ổn định_partition trong C ++. Thuật toán ổn định_partition [] sắp xếp trình tự được xác định theo bắt đầu và kết thúc sao cho tất cả các phần tử mà vị ngữ được chỉ định bởi PFN trả về đúng đến trước các phần tử mà vị ngữ trả về sai. Các phân vùng là ổn định. Điều này có nghĩa là thứ tự tương đối của chuỗi được bảo tồn.
- Chức năng này cố gắng phân bổ một bộ đệm tạm thời. Nếu phân bổ thất bại, thuật toán kém hiệu quả hơn được chọn.
- Dưới đây là việc thực hiện logic trên.
Code:
C++
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]265
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]40
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]41
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]270
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]272
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]276
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]277
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]278
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]279
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]281
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]286
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]06
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]36
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]333
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]335
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]337
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}7
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]337
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}7
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]335
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.77
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]358
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]06
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]367
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.66
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]14
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]372
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]14
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]374
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]376
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]36
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Java
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}36
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]382
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}38
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]384
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]310
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]312
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.36
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]35
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]397
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]402
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]407
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]9
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]409
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
12 10 2 10 10 45 9 4528
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]416
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]9
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}65
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
12 10 2 10 10 45 9 4528
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]424
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]335
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]337
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}7
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]337
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}7
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]335
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]445
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
12 10 2 10 10 9 45 4568
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]449
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]455
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]457__
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
12 10 2 10 10 9 45 4520
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
12 10 2 10 10 9 45 4522
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
12 10 2 10 10 9 45 4524
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]472
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]02
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]477
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]481
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Array after segregation 12 34 90 8 9 45 35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]9
Array after segregation 12 34 90 8 9 45 35
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]23
Array after segregation 12 34 90 8 9 45 3555
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]496
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]376
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Python3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]0
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]502
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]22
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
12 10 2 10 10 9 45 4579
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]510
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]54
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
12 10 2 10 10 45 9 4528
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]516
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]518
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]521
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]8
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]9
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]03__
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]530
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]8
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]9
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]538
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]540
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68______22222
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
12 10 2 10 10 9 45 4579
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]54
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}7
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}8
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
12 10 2 10 10 9 45 4579
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]54
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}7
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}8
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]22
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]71
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]22____23
Array after segregation 12 34 90 8 9 45 332
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]573
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]576
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
12 10 2 10 10 45 9 4528
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]580
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]020
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}54
Array after segregation 12 34 90 8 9 45 35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]9
Array after segregation 12 34 90 8 9 45 35
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]23
Array after segregation 12 34 90 8 9 45 35551488 ____5555556____555551492
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];1
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]037
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]4
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]52
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]598
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]599
C#
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]40
Array after segregation 12 34 90 8 9 45 342
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}38
Array after segregation 12 34 90 8 9 45 344
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]310
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]610
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
start: the range of elements to reorder end: the range of elements to reorder pfn: User-defined predicate function object that defines the condition to be satisfied if an element is to be classified. A predicate takes single argument and returns true or false. Return Value: Returns an iterator to the beginning of the elements for which the predicate is false.36
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]318
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]402
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]625
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]628
12 10 2 10 10 45 9 4554
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]631
12 10 2 10 10 45 9 4554
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]633
12 10 2 10 10 45 9 4554
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]635
12 10 2 10 10 45 9 4554
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]335
12 10 2 10 10 45 9 4554
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]337
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}7
12 10 2 10 10 45 9 4554
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]337
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}7
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]335
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]232
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]658
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]02
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}42
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]43
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]667
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]668
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]669
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]674
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]45
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]677
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]376
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
JavaScript
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]683
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]684
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]685
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]688
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]321
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]324
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]329
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]703
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]335
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]337
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}7
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]337
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}7
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]335
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]232
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]726
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]730
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]732
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
12 10 2 10 10 9 45 4522
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
12 10 2 10 10 9 45 4524
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]472
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]741
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]744
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]746
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]376
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
PHP
12 10 2 10 10 45 9 4522
12 10 2 10 10 45 9 4523
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]310
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];09
Array after segregation 12 34 90 8 9 45 35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]130
12 10 2 10 10 45 9 4528
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50
12 10 2 10 10 45 9 4532
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]134
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]764
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]130
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]766
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]60
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]134
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]771
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50
12 10 2 10 10 9 45 4516
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];09
Array after segregation 12 34 90 8 9 45 33
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50__1780
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]6
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];09
Array after segregation 12 34 90 8 9 45 33
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]134
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]157
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]55
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];09
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]794
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];09____451
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]51
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]134
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50
12 10 2 10 10 45 9 4561
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]134
12 10 2 10 10 45 9 4576
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}7
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}68
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]134
12 10 2 10 10 45 9 4576
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}7
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}4
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50
12 10 2 10 10 45 9 4561
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]1
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3______750
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]5
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];45
Algorithm: segregateEvenOdd[] 1] Initialize two index variables left and right: left = 0, right = size -1 2] Keep incrementing left index until we see an even number. 3] Keep decrementing right index until we see an odd number. 4] If left < right then swap arr[left] and arr[right]3
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];09
Array after segregation 12 34 90 8 9 45 33
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];63
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]32
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
12 10 2 10 10 45 9 4523
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]44
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 35
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50__55551134____
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]851
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];15
12 10 2 10 10 45 9 4535
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 33
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]169
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 33
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];50
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]174
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 33
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]134
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]169
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
12 10 2 10 10 45 9 4525
Array after segregation 12 34 90 8 9 45 33
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]134
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]174
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];15
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]35
12 10 2 10 10 45 9 4525
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]26
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]86
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];09
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]882
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]130
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]196
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];09
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]2
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]310
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];09
Array after segregation 12 34 90 8 9 45 35
Even lists: [2, 62, 84] Odd lists: [5, 13, 17, 51, 73, 95]130
Input = {12, 34, 45, 9, 8, 90, 3} Output = {12, 34, 8, 90, 45, 9, 3}23
template BiIter stable_partition[BiIter start, BiIter end, UnPred pfn];66
Độ phức tạp về thời gian: O [n] & nbsp; không gian phụ trợ: O [1] O[N]
Auxiliary Space: O[1]
Tài liệu tham khảo: & nbsp; //www.csse.monash.edu.au/~lloyd/tildeallgds/sort/flag/pleas Viết nhận xét nếu bạn tìm thấy mã/thuật toán trên không chính xác hoặc tìm ra cách tốt hơn để giải quyết vấn đề tương tự.
//www.csse.monash.edu.au/~lloyd/tildeAlgDS/Sort/Flag/
Please write comments if you find the above code/algorithm incorrect, or find better ways to solve the same problem.