插入排序 歸併排序 堆排序

2021-07-26 08:50:44 字數 1395 閱讀 7309

#include

void insertion_sort(int

*arr,int len)

arr[j+1]=temp;

}}int main();

int n=5;

insertion_sort(a,n);

for(int i=0;iprintf("%d ",a[i]);

}

#includevoid merge_sort_recursive(int *arr,int *reg,int start,int

end)

void merge_sort(int *arr,int

len)

int main();

int n=5;

merge_sort(a,n);

for(int i=0;i"%d ",a[i]);

}

#include

#include

#include

#define maxn 100

#define inf 1<<30

typedef struct heapheap;

//最小堆初始化,陣列從1開始儲存

heap* init(heap *h)

//向最小堆中插入元素 ,時間複雜度為o(n)

heap* insert(heap* h,int v)

// i 節點 違背 heap property , i節點 與 左右孩子中 值較小的孩子交換

else

if(h->data[i]>h->data[i<<1] || h->data[i]>h->data[i<<1|1])

}h->sz++;

//printf("sz=%d\n",h->sz);

return h;

} // 將最小堆中最小的元素取出 ,時間複雜度為o( log(n) )

heap* extract_min(heap *h)

int j=h->data[i<<2]data[i<<2|1]?h->data[i<<1]:h->data[i<<1|1];

int tmp=h->data[i];

h->data[i]=h->data[j];

h->data[j]=tmp;

i=j;

}h->sz--;

return h;

}//輸出最小堆中各個元素

void show(heap *h)

else

}int main();

for(int i=0;i<8;i++)

show(h);

extract_min(h);

show(h);

}

插入排序,快速排序,堆排序,歸併排序

插入排序 void insert sort int arry,int length 快速排序 int quick adj int arry,int low,int high else if arry high low 2 arry low arry high low 2 arry high arry...

氣泡排序,插入排序,堆排序,歸併排序,希爾排序

感謝姥姥提供模板 感謝姥姥 展示 include include using namespace std 氣泡排序 void bubble sort int arr,int n 插入排序 void insertionsort int arr,int n arr i tmp 希爾排序 void she...

插入排序 歸併排序

插入排序 define len 5 int a len void insertion sort void int i,j,k for j 1 j len j k a j i j 1 while i 0 a i k a i 1 a i i a i 1 k 歸併排序 int a 8 void merge...