Ουρά Προτεραιότητας ( priority queue)

download Ουρά Προτεραιότητας ( priority queue)

If you can't read please download the document

description

Ουρά Προτεραιότητας ( priority queue). Δομή δεδομένων που υποστηρίζει τις ακόλουθες λειτουργίες. PQinsert : εισαγωγή στοιχείου. PQdelmax : επιστροφή του στοιχείου με το μεγαλύτερο* κλειδί και διαγραφή του από τη δομή. - PowerPoint PPT Presentation

Transcript of Ουρά Προτεραιότητας ( priority queue)

PowerPoint Presentation

TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA (priority queue) PQinsert : . ... . PQdelmax : * * . TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA (priority queue) PQinsert : PQdelmax : * * . TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA (priority queue) static int N;static int *pq;

void PQinit(int maxN){ pq = malloc(maxN*sizeof(int)); N = 0;}

int PQempty(){ return N==0;}

void PQinsert(int v){ pq[N++]=v; }

int PQdelmax(){ int j, max = 0; for (j = 1; j < N; j++) if (pq[max] < pq[j]) max = j; exch(pq,max,N-1); // pq[max] pq[N-1] return pq[--N];} 181220111595[0][1][2][3][4][5][6][7][8][9][10][11]NmaxN-1void exch(int *a, int i, int j){ int temp=a[i]; a[i]=a[j]; a[j]=temp;} TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA (priority queue) 591112151820[0][1][2][3][4][5][6][7][8][9][10][11]NmaxN-1 : : 181220111595head201815121195headTexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA (priority queue)

(*)

(*) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA (priority queue)

(*)

(*) (**)(**)(**)(**) , .. TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA (heap) .201812112541315796 : . TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA (heap) .201812112541315796 : . 254111872015913612 : : : . TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA (heap) . : . . lgN 201812112541315796TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA (heap) .201812112541315796 : . [1][2][3][7][6][12][11][10][9][8][4][5]201812111595427136[1][2][3][4][5][6][7][8][9][10][11][12] : i 2i 2i+1. . lgN 10TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA : . 201812112541315796[1][2][3][7][6][12][11][10][9][8][4][5]TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA : . 2018121125413151996[1][2][3][7][6][12][11][10][9][8][4][5] TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA : . 2018121125413191596[1][2][3][7][6][12][11][10][9][8][4][5] TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA : . 2019121125413181596[1][2][3][7][6][12][11][10][9][8][4][5] TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA : . 2019121125413181596[1][2][3][7][6][12][11][10][9][8][4][5] TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA : . 2019121125413181596[1][2][3][7][6][12][11][10][9][8][4][5]fixUp(int *a, int k){ while (k>1 && (a[k/2]=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 114189214715136512[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 114189214715136125[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 114189214715136125[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 114189214713156125[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 114189214713156125[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 114189214713156125[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 114189214713156125[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 111518921471346125[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 111518921471346125[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 111518921474136125[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}44TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 111518921474136125[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}45TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 181511921474136125[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}46TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 181511921474136125[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}47TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 181514921174136125[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}48TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N) 181514921174136125[1][2][3][7][6][12][11][10][9][8][4][5]void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}49TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA ( ) O(N)

void heapsort(int *a, int N){ int k; for (k=N/2; k>=1; k--) fixDown(a,k,N); while (N>1) { exch(a,1,N); fixDown(a,1,--N); }}50TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAAA a[i] > a[j]NAIOXI :

TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAAA a[i]