Program to print N minimum elements from list of integers

Given a list of integers, the task is to generate another list with N minimum elements.

Examples:

Input: {23, 1, 6, 2, 90}
Output: {1, 2}

Input: {34, 21, 56, 42, 89, 90, -1}
Output: {-1, 21}

Approach: The idea is to use the concept used in Find the smallest and second smallest elements in an array.

  • First, find the smallest number in the given list.
  • Then add that current minimum element to another list that will contain the N minimum elements.
  • Remove the current minimum element from the given list.
  • Continue with the same process until the N minimum elements are found.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to find N 
// minimum elements
#include <bits/stdc++.h>
using namespace std;
  
void Nminelements(vector<int>list1, int N)
{
    vector<int> final_list;
    int n = list1.size();
    for (int i = 0; i < N; i++) 
    {
        int min1 = 9999999;
        for (int j = 0; j < n; j++)
        {
            if (list1[j] < min1)
                min1 = list1[j];
        }
          
        // remove minimum element 
        // from list so that it do
        // not come in calculation again         
        list1.erase(remove(list1.begin(), 
                           list1.end(), min1), 
                           list1.end());
        final_list.push_back(min1);
    }
    for(int i = 0; i < final_list.size(); i++)
    cout << final_list[i] << " ";
  
// Driver code
int main()
{
    vector<int> list1 = {4, 78, 34, 10, 
                         8, 21, 11, 231};
    int N = 2;
    Nminelements(list1, N);
}
  
// This code is contributed by Subhadeep

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to find N minimum elements
def Nminelements(list1, N):
    final_list =[];
   
    for i in range(0, N):    
        min1 = 9999999;
           
        for j in range(len(list1)):      
            if list1[j]<min1:
                min1 = list1[j];
  
        # remove minimum element from list so 
        # that it do not come in calculation again         
        list1.remove(min1);
        final_list.append(min1)
           
    print(final_list)
   
# Driver code
list1 = [4, 78, 34, 10, 8, 21, 11, 231];
N = 2;
Nminelements(list1, N)

chevron_right


Output:

4 8


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : tufan_gupta2000