
算法
蒲公英小帝
专注开源,热衷分享。
展开
-
冒泡排序
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 · 497 阅读 · 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 · 590 阅读 · 0 评论 -
直接插入排序
直接插入排序原创 2014-07-20 22:22:10 · 605 阅读 · 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 · 432 阅读 · 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 · 513 阅读 · 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 · 388 阅读 · 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 · 457 阅读 · 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 · 386 阅读 · 0 评论