vector<int> sortElement(vector<int> A, int n, int k) {
		if (n < 2)
			return A;
		vector<int> myHeap(A.begin(), A.begin() + k);
		makeHeap(myHeap);
		for (int i = k; i < A.size(); ++i) {
			A[i - k] = myHeap[0];
			myHeap[0] = A[i];
			heapAdjust(myHeap, 0, k);
		}
		for (int i = A.size() - k; i < A.size(); ++i) {
			A[i] = myHeap[0];
			swap(myHeap[0], myHeap[k - 1]);
			heapAdjust(myHeap, 0, --k);
		}
		return A;
	}
Esempio n. 2
0
int main() {
	// Declare array with random values and get its size
	int arr[] = { 7, 12, 36, 24, 5, 19, 11, 3, 17 };
	int sizeOfArr = sizeof(arr) / sizeof(arr[0]);

	// Heap declaration
	MinHeap myHeap(sizeOfArr);

	// Add each element from arr[] to the heap
	for (int i = 0; i < sizeOfArr; ++i) {
		myHeap.addToHeap(arr[i]);
	}

	// Display end result
	myHeap.printHeap();

	return 0;
}