یافتن n امین عنصر در vector - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

یافتن n امین عنصر در vector

+1 امتیاز
سلام و تشکر از سایت خوبتون. از آنجایی که مطلع هستید برای بدست آوردن n امین عنصر نیازمند به مرتب سازی اعداد هستیم و سپس دسترسی به خانه مرودنظر آیا به غیر از این روش هم راه دیگری وجود داره؟ ممنونم
سوال شده شهریور 9, 1393  بوسیله ی فریدون خالقی (امتیاز 13)   1 1
منظورتون از یافتن n امین عنصر چیه؟ دست رسی بهش؟؟؟
منظورم اینه که مثلا  1,2,2,4,3,2,5
بخواهیم بدونیم 2 آخر در چه اندیسی وجود داره که میشه  5 این جا

1 پاسخ

+3 امتیاز
 
بهترین پاسخ

فکر نکنم از هر روشی که قرار باشه انجام بدید باید مرتب سازی صورت بگیره در ضمن خود stl هم تابعی برای اینکار داره که خودش هم به صورت ناحیه ای همان ناحیه ای که شما از طریق پارامتر براش مشخص می کنید داده ها را در ابتدا مرتب می کنه.

 std::vector<int> v{5, 6, 4, 3, 2, 6, 7, 9, 3};
 
    std::nth_element(v.begin(), v.begin() + v.size()/2, v.end());
    std::cout << "The median is " << v[v.size()/2] << '\n';

 

پاسخ داده شده شهریور 10, 1393 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد شهریور 20, 1393 بوسیله ی BlueBlade
با چه الگوریتمی مرتب میکنه ؟
...