int quick_find(int* v,int l,int r,int k){ int p = partition(v,l,r,r); if(k==p-l){ return v[p]; } else if (k<p-l){ return quick_find(v,l,p-1,k); } else{ return quick_find(v,p+1,r,(k-(p-l)-1)); } }
int main(void){ int v[] = {1,5,3,0,2,4,9,10,12,18,11,9,7}; int k; for(k=0;k<13;k++){ printf("O %d menor elemento é %d.\n",k,quick_find(v,0,12,k)); } return 0; }
static void on_click(GtkButton* button, gpointer data) { quick_find(); }
static gboolean on_activate(GtkWidget *widget, GdkEventKey *event, gpointer user_data) { quick_find(); return FALSE; }