Đây là một chương trình C ++ để tìm k số gần nhất với Trung vị của S, trong đó S là tập hợp n số.
Thuật toán
Begin function partition () để phân vùng mảng trên cơ sở các giá trị cao bằng giá trị pivot:Đối số:a [] =an array. l =low H =high Phần thân của hàm:Khai báo các biến pivot, in, i Khởi tạo in =l Đặt pivot =h For i =l to h-1 if (a [i] Ví dụ#includeusing namespace std; void swap (int * x, int * y) {// hoán đổi hai giá trị int tmp; tmp =* x; * x =* y; * y =tmp;} int Partition (int a [], int l, int h) {int pivot, in, i; trong =l; pivot =h; for (i =l; i > n; int a [n]; for (i =0; i > a [i]; } cout <<"\ nNhập số phần tử gần trung vị nhất được yêu cầu:"; cin>> k; QuickSort (a, 0, n-1); cout <<"K phần tử gần trung vị nhất là:"; if (n% 2 ==1) {median =a [n / 2]; h =n / 2 + 1; l =n / 2; while (k> 0) {if ((median-a [l] <=a [h] -median) &&l> =0) {cout <<"" < a [h] -median) &&h <=n-1) {cout <<"" < 0) {d1 =a [l]; d2 =a [h]; if ((median-d2 <=d1-median) &&l> =0) {cout <<"" < d1-median) &&h <=n-1) {cout <<"" < Đầu ra
Nhập số phần tử trong tập dữ liệu:7Nhập 1 phần tử:7Nhập 2 phần tử:6 Phần tử nhập 3:Phần tử 5Nhập 4:4 Phần tử nhập 5:3 Phần tử nhập 6:2 Phần tử nhập 7:1Nhập số phần tử gần nhất với trung vị được yêu cầu:2 Phần tử K gần trung vị nhất là:4 3