Exemple #1
0
        // To heapify a subtree rooted with node i which is
        // an index in arr[]. n is size of heap
        static void heapify(Struktura[] arr, int n, int i)
        {
            int largest = i;         // Initialize largest as root
            int l       = 2 * i + 1; // left = 2*i + 1
            int r       = 2 * i + 2; // right = 2*i + 2

            // If left child is larger than root
            if (l < n && arr[l].CompareTo(arr[largest]) > 0)
            {
                largest = l;
            }

            // If right child is larger than largest so far
            if (r < n && arr[r].CompareTo(arr[largest]) > 0)
            {
                largest = r;
            }

            // If largest is not root
            if (largest != i)
            {
                Struktura swap = arr[i];
                arr[i]       = arr[largest];
                arr[largest] = swap;

                // Recursively heapify the affected sub-tree
                heapify(arr, n, largest);
            }
        }
Exemple #2
0
        public static Struktura[] CreateArray(int size, int seed, string type, string DataType)
        {
            Struktura[] array = new Struktura[size];
            Random      rand  = new Random(seed);

            for (int i = 0; i < array.Length; i++)
            {
                Struktura obj = new Struktura();
                obj.value1 = rand.Next(200000);
                obj.value2 = rand.Next(200000);
                array[i]   = obj;
            }
            return(array);
        }
Exemple #3
0
        static public void sort(Struktura[] arr)
        {
            int n = arr.Length;

            // Build heap (rearrange array)
            for (int i = n / 2 - 1; i >= 0; i--)
            {
                heapify(arr, n, i);
            }

            // One by one extract an element from heap
            for (int i = n - 1; i >= 0; i--)
            {
                // Move current root to end
                Struktura temp = arr[0];
                arr[0] = arr[i];
                arr[i] = temp;

                // call max heapify on the reduced heap
                heapify(arr, i, 0);
            }
        }