Sắp xếp các phần tử của một mảng số nguyên theo cách sao cho phần tử đầu tiên là giá trị lớn nhất của mảng và phần tử thứ hai của mảng đã sắp xếp là phần tử nhỏ nhất, phần tử thứ ba là phần tử tối thiểu thứ hai, phần tử thứ tư là phần tử lớn nhất thứ hai của mảng và tiếp tục.
Hãy lấy một ví dụ để hiểu rõ hơn về khái niệm này,
Đầu vào:4 1 8 2 9 3 7 Đầu ra:9 1 8 2 7 3 4 Phép toán:Các phần tử theo cách được sắp xếp là 1 2 3 4 7 8 9. Bây giờ, hãy tạo nó theo cách chúng ta muốn, tức là được sắp xếp thay thế biểu mẫu. Vì vậy, phần tử lớn nhất của mảng đầu tiên, tức là 9 theo sau là 1, là phần tử nhỏ nhất của mảng, tức là 1 tiếp theo là 8, 2, 7, 3, 4.
Bây giờ khi chúng ta đã hiểu khái niệm, chúng ta có thể phát triển một giải pháp để giải quyết vấn đề này. Vì vậy, một giải pháp khả thi sẽ là sắp xếp mảng và in các phần tử cuối cùng và đầu tiên của mảng được sắp xếp này. Hãy tạo một thuật toán dựa trên giải pháp này.
Thuật toán
Bước 1:Sắp xếp mảng.Bước 2:Tạo hai con trỏ một để duyệt từ đầu và một con trỏ khác để duyệt từ cuối.Bước 3:In các giá trị của con trỏ ở dạng thay thế và tăng giá trị của trình lặp.Ví dụ
#includeusing namespace std; void alternateSort (int arr [], int n); void swap (int * xp, int * yp); void selectSort (int arr [], int n); int main () {int arr [] ={4,1,8,2,9,3,7}; int n =sizeof (arr) / sizeof (arr [0]); thay thếSort (arr, n); return 0;} void alternateSort (int arr [], int n) {selectSort (arr, n); int i =0, j =n-1; while (i Đầu ra
9 1 8 2 7 3 4