配列を分割する方法でk番目に小さい要素を見つけるC++プログラム
配列を分割する方法でk番目に小さい要素を見つけるC++プログラムを開発します。
アルゴリズム
Begin Function CreatePartition() has an array a, and the lower l and upper limit h as arguments in := l and pi := h for i in range l to h, do if a[i] < a[pi], then exchange the values of a[i] and a[in] increase the in by 1 done exchange the values of a[pi] and a[in] return in End Begin Function Partition(): Arguments: An array A, and the lower and upper limit low and high, and also k. Body of the function: if low < high, then p_in := Create_Partition(A, low, high) if p_in = k-1, then return k-1 else if p_in > k-1 Partition (A, low, p_in – 1, k) else Partition (A, p_in + 1, high, k) End
サンプルコード
#include<iostream> using namespace std; void swap(int *a, int *b) { int t; t = *a; *a = *b; *b = t; } int CreatePartition(int a[], int l, int h) { int pi, in, i; in = l; pi = h; for(i=l; i < h; i++) { if(a[i] < a[pi]) { swap(&a[i], &a[in]); in++; } } swap(&a[pi], &a[in]); return in; } int Partition(int a[], int low, int high, int k) { int p_in; if(low < high) { p_in = CreatePartition(a, low, high); if(p_in == k-1) return k-1; else if(p_in > k-1) Partition(a, low, p_in-1, k); else Partition(a, p_in+1, high, k); } } int main() { int n, i, k, k_k; cout<<"\nEnter the number array elements: "; cin>>n; int a[n]; for(i = 0; i < n; i++) { cout<<"Enter element "<<i+1<<": "; cin>>a[i]; } cout<<"\nEnter the k for the kth smallest element: "; cin>>k; k_k = Partition(a, 0, n-1, k); cout<<"\nThe kth smallest element: "<<a[k_k]; return 0; }
出力
Enter the number array elements: 4 Enter element 1: 3 Enter element 2: 2 Enter element 3: 5 Enter element 4: 4 Enter the k for the kth smallest element: 3 The kth smallest element: 4
-
2D配列でK番目に小さい要素を見つけるC#プログラム
2D配列を宣言する- int[] a = new int[] { 65, 45, 32, 97, 23, 75, 59 }; K番目に小さい整数、つまり5番目に小さい整数が必要だとします。配列を最初に並べ替える- Array.Sort(a); 5番目に小さい要素を取得するには- a[k - 1]; 完全なコードを見てみましょう- 例 using System; using System.IO; using S
-
2D配列でk番目に小さい要素を見つけるPythonプログラム
1つのn×nユーザー入力整数行列が与えられ、kの値。私たちのタスクは、2D配列でk番目に小さい要素を見つけることです。ここでは、Pythonでheapq mudule.Heapキュー(またはheapq)を使用します。 Pythonでは、「heapq」モジュールを使用して利用できます。 Pythonでのこのモジュールの手法は、最小のヒープ要素がポップされるたびに(min heap).nsmallest()メソッドを使用して、データフレームまたはシリーズからn個の最小値を取得します。 例 Input Array is:: 10 20 20 40 15 45 40 30 32 33 30 50