public Key delMin(){
  if (isEmpty())   throw new NoSuchElementException("Priority queue is empty");
  exch(0,--n);
  sink(0);
  Key min=keys[n + d];
  keys[n + d]=null;
  int number=getN(order - 2);
  if (order > 1 && n == number) {
    resize(number + (int)Math.pow(d,order - 1) + d);
    order--;
  }
  return min;
}

public Key delMin ( ) { if ( isEmpty ( ) ) throw new NoSuchElementException ( "Priority queue is empty" ) ; exch ( 0 , -- n ) ; sink ( 0 ) ; Key min = keys [ n + d ] ; keys [ n + d ] = null ; int number = getN ( order - 2 ) ; if ( order > 1 && n == number ) { resize ( number + ( int ) Math . pow ( d , order - 1 ) + d ) ; order -- ; } return min ; }
deletes the minimum key worst case is o ( d * log - d ( n ) )
