算法
蒲公英小帝
专注开源,热衷分享。
展开
-
冒泡排序
void BubbleSort(int a[], int length){ int i,j; int temp; for(j = length - 1; j > 0; --j) { for(i = 0; i < j; ++i) { if(a[i] > a[i+1]) { temp = a[i]; a[i] = a[i+1]; a[i+1] =原创 2014-07-20 22:34:26 · 486 阅读 · 0 评论 -
【技术体系框架】排序算法
//直接插入排序void InsertSort(int a[], int length){ int i,j; int temp; for(i = 1; i<length; ++i) { j = i - 1; temp = a[i]; while(j>=0 && a[j]>temp) { a[j+1] = a[j]; --j; } a[j+1] = t原创 2014-07-20 23:26:47 · 559 阅读 · 0 评论 -
直接插入排序
直接插入排序原创 2014-07-20 22:22:10 · 589 阅读 · 0 评论 -
快速排序
void QuickSort(int a[], int length){if(a == NULL || length return;int start = 0, end = length - 1;int val = a[0];while(start {for(;start{if(a[end]{a[start] = a[end];break;}原创 2014-07-20 22:45:14 · 419 阅读 · 0 评论 -
归并排序
void MergeArray(int list1[], int list1_size, int list2[], int list2_size){ int *list = (int*)malloc((list1_size + list2_size)*sizeof(int)); int list1_index = 0; int list2_index = 0; int list_inde原创 2014-07-20 23:21:26 · 498 阅读 · 0 评论 -
希尔排序
void ShellSort(int a[], int length){ int i,j; int temp; for(int k = length/2; k>=1; k/=2) { for(i = k; i< length; ++i) { j = i - k; temp = a[i]; while(j>=0 && a[j] > temp) { a原创 2014-07-20 22:27:39 · 370 阅读 · 0 评论 -
直接选择排序
void StraightSelectSort(int a[], int length){ int i,j; int min, min_pos; for(i = 0; i< length; ++i) { min = a[i]; min_pos = i; for(j = i+1; j<length;++j) { if(a[j]<min) { min =原创 2014-07-20 22:47:47 · 441 阅读 · 0 评论 -
堆排序
void HeapAdjust(int a[], int pos, int length){ int child = 2 * pos + 1; int temp; for(int p = pos; child<length; child = 2 * p + 1) { if((child+1)a[child]) ++child; if(a[p]<a[child]) {原创 2014-07-20 23:02:47 · 359 阅读 · 0 评论