nth_element仅排序第n个元素(从0开始索引),即将位置n(从0开始)的元素放在第n大的位置,处理完之后,默认排在它前面的元素都不比它大,排在它后面的元素都不比它小。
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 int main() 5 { 6 int a[] = { 1,3,4,15,2,6,8,7,9 }; 7 int i; 8 cout << "数列例如以下:" << endl; 9 for (i = 0; i<9; i++) 10 cout << a[i] << " "; 11 nth_element(a, a + 5, a + 6); 12 cout << endl << "输出第五大的数: " << a[4] << endl; //注意下标是从0開始计数的 13 return 0; 14 }
运行结果:
https://www.cnblogs.com/yxwkf/p/5233716.html
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 int main() 5 { 6 //int a[] = { 1,3,4,15,2,6,8,7,9 }; 7 //int i; 8 //cout << "数列例如以下:" << endl; 9 //for (i = 0; i<9; i++) 10 // cout << a[i] << " "; 11 //nth_element(a, a + 5, a + 6); 12 //cout << endl << "输出第五大的数: " << a[4] << endl; //注意下标是从0開始计数的 13 14 int a[10]; 15 for (int i = 0; i<10; ++i) { 16 a[i] = i; 17 } 18 random_shuffle(a, a + 10); 19 for (int i = 0; i<10; ++i) std::cout << a[i] << ' '; std::cout << ' '; 20 nth_element(a, a + 6, a + 10); 21 for (int i = 0; i<10; ++i) std::cout << a[i] << ' '; std::cout << ' '; 22 23 return 0; 24 }