Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define length 10
- int heapsize;
- void heapify(int* A,int i){
- int l = (2*i)+1;
- int r = (2*i)+2;
- int max;
- if(l <= heapsize && A[1]>A[i]){
- max = l;
- }
- else{
- max = i;
- }
- if(r <= heapsize && A[r]>A[max]){
- max = r;
- }
- if(max != i){
- int t = A[i];
- A[i] = A[max];
- A[max] = t;
- heapify(A, max); //zmienic na iteracje
- }
- }
- void buildheap(int* A)
- {
- heapsize = 9; //stala
- int i;
- for(i=(length-1)/2;i >= 0; i++){
- heapify(A,i); //zmienic na iteracje
- }
- }
- void heapsort(int* A)
- {
- buildheap(A);
- int i;
- for(i=(length-1);i>0;i--){
- int t = A[heapsize];
- A[heapsize] = A[0];
- A[0] = t;
- heapsize--;
- heapify(A,0); //zmienic na iteracje
- }
- }
- int main(){
- FILE *f;
- f = fopen("lista.txt", "r");
- int i,a;
- int tab[length];
- char b;
- for(i=0;i<length;i++){
- fscanf(f, "%d [^\n]%c", a,b);
- tab[i]=a;
- }
- heapsort(tab);
- for(i=0;i<length;i++){
- printf("%d", tab[i]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement