#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...