$93 GRAYBYTE WORDPRESS FILE MANAGER $93

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.217.254 | ADMIN IP 216.73.216.180
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/opt/alt/ruby33/share/ruby/syntax_suggest/

HOME
Current File : /opt/alt/ruby33/share/ruby/syntax_suggest//priority_queue.rb
# frozen_string_literal: true

module SyntaxSuggest
  # Holds elements in a priority heap on insert
  #
  # Instead of constantly calling `sort!`, put
  # the element where it belongs the first time
  # around
  #
  # Example:
  #
  #   queue = PriorityQueue.new
  #   queue << 33
  #   queue << 44
  #   queue << 1
  #
  #   puts queue.peek # => 44
  #
  class PriorityQueue
    attr_reader :elements

    def initialize
      @elements = []
    end

    def <<(element)
      @elements << element
      bubble_up(last_index, element)
    end

    def pop
      exchange(0, last_index)
      max = @elements.pop
      bubble_down(0)
      max
    end

    def length
      @elements.length
    end

    def empty?
      @elements.empty?
    end

    def peek
      @elements.first
    end

    def to_a
      @elements
    end

    # Used for testing, extremely not performant
    def sorted
      out = []
      elements = @elements.dup
      while (element = pop)
        out << element
      end
      @elements = elements
      out.reverse
    end

    private def last_index
      @elements.size - 1
    end

    private def bubble_up(index, element)
      return if index <= 0

      parent_index = (index - 1) / 2
      parent = @elements[parent_index]

      return if (parent <=> element) >= 0

      exchange(index, parent_index)
      bubble_up(parent_index, element)
    end

    private def bubble_down(index)
      child_index = (index * 2) + 1

      return if child_index > last_index

      not_the_last_element = child_index < last_index
      left_element = @elements[child_index]
      right_element = @elements[child_index + 1]

      child_index += 1 if not_the_last_element && (right_element <=> left_element) == 1

      return if (@elements[index] <=> @elements[child_index]) >= 0

      exchange(index, child_index)
      bubble_down(child_index)
    end

    def exchange(source, target)
      a = @elements[source]
      b = @elements[target]
      @elements[source] = b
      @elements[target] = a
    end
  end
end


Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
13 May 2025 8.40 AM
root / linksafe
0755
capture
--
13 May 2025 8.39 AM
root / linksafe
0755
api.rb
6.074 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
around_block_scan.rb
6.903 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
block_expand.rb
4.875 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
capture_code_context.rb
6.665 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
clean_document.rb
8.732 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
cli.rb
3.115 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
code_block.rb
2.132 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
code_frontier.rb
5.612 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
code_line.rb
6.623 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
code_search.rb
3.813 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
core_ext.rb
3.021 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
display_code_with_line_numbers.rb
1.77 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
display_invalid_blocks.rb
1.755 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
explain_syntax.rb
2.691 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
left_right_lex_count.rb
4.059 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
lex_all.rb
1.664 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
lex_value.rb
1.497 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
parse_blocks_from_indent_line.rb
1.501 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
pathname_from_message.rb
1.422 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
priority_engulf_queue.rb
1.265 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
priority_queue.rb
1.998 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
ripper_errors.rb
0.938 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
scan_history.rb
2.919 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
unvisited_lines.rb
0.688 KB
24 Apr 2025 7.57 AM
root / linksafe
0644
version.rb
0.074 KB
24 Apr 2025 7.57 AM
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF