排序算法
来源:互联网 发布:哈希算法原理 ai 编辑:程序博客网 时间:2024/05/09 22:21
/* sort.c(included kinds of sort algrithms) auther:yejing data:2014/07/23 ver :1.0*/#include <stdlib.h>#include <stdio.h>void swap(int* x, int* y){if(!x || !y)return;*x = *x + *y;*y = *x - *y;*x = *x - *y;return;}int partition(int front, int rear, int array[]){if(front < rear){int j;int i = front - 1;for(j = front; j < rear; j++)if(array[j] < array[rear]){i++;swap(&(array[j]), &(array[i]));}swap(&(array[i + 1]), &(array[rear]));return i + 1;}}void q_sort(int front, int rear, int array[]){if(front < rear){int middle = partition(front, rear, array);q_sort(front, middle - 1, array);q_sort(middle + 1, rear, array);}return;}void merge(int front, int middle, int rear, int array[]){int i = front;int j = middle + 1;int k = 0;int tmp[1024];while(i <= middle && j <= rear)if(array[i] < array[j])tmp[k++] = array[j++];elsetmp[k++] = array[i++];while(i <= middle)tmp[k++] = array[i++];while(j <= rear)tmp[k++] = array[j++];i = 0;for(i; i < k; ++i)array[front + i] = tmp[i];return;}void mergesort(int front , int rear, int array[]){if(front < rear){int middle = (front + rear)/2;mergesort(front, middle, array);mergesort(middle + 1, rear, array);merge(front, middle, rear, array);}return;}void insert_sort(int array[], int n){int i,j;int tmp;for(i = 1; i < n; ++i){tmp = array[i];for(j = i; j > 0 && array[j - 1] < tmp; --j) array[j] = array[j - 1];array[j] = tmp;}}int main(int argc, char* argv[]){int array[19] = {1, 2, 3, 4, 5, 6, 6, 7, 4, 34, 23, 23, 54, 523, 1, 23, 45, 657, 879};printf("please chose the sort algrithm:\n");printf("1-->insert_sort 2-->mergesort 3-->qsort\n");int pattern;scanf("%d", &pattern);if(pattern == 1)insert_sort(array, 19);else if(pattern == 2)mergesort(0, 18, array);else if(pattern == 3)q_sort(0, 18, array);elseprintf("pattern do not support\n");int i;for(i = 0; i < 19; ++i)printf("%d ", array[i]);printf("\n");pause();}
0 0
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- thrift分析目标
- 杭电2040
- linux socke编程实例:一个简单的echo服务器程序
- 如何输出类的函数地址
- requestWindowFeature(Window.FEATURE_NO_TITLE);在程序中不起作用的解决方法
- 排序算法
- 在Windows上安装Maven
- 使用Python生成器解决八皇后问题
- ural 1998
- sort排序算法集合
- 窗口最小化以后左键点击任务栏上图标无法还原
- 【androidannotation】Rest Api
- FFmpeg-解码264文件
- Plus One