烟台好利来蛋糕团购:重温数据结构写的几种常用排序方法,给新手参考 - C/C / 新手乐园
来源:百度文库 编辑:偶看新闻 时间:2024/09/21 09:04:47
#include#include #include #include #include #include void print(int a[], int n){int i = 1;while(i<=n){printf("%d,", a[i]);i++;}printf("\n");return;}//直接插入排序,时间复杂度O(n^2),空间复杂度O(1),稳定排序//a[0]不参与排序,实际排序空间为a[1]~a[n]void InsertSort(int a[], int n){for(int i=2; i<=n; i++){if(a[i]0 && a[0]1);printf("ShellSort : ");print(a, n);return;}//冒泡排序,时间复杂度O(n^2),空间复杂度O(1),稳定排序void BubbleSort(int a[], int n){for(int i=1; i =i; j--){if(a[j+1]low && a[j]>a[0])j--;if(i<=j){tmp = a[i];a[i] = a[j];a[j] = tmp;i++;j--;}}if(j>low)QuickSort(a, low, j);if(i a[low])low++;if(low =a[j])break;a[s] = a[j];// a[j] = a[0]; s = j;}a[s] = a[0];return;}//堆排序,最坏时间复杂度nlgn,空间复杂度为O(1),不稳定排序,适合大量数据的排序void HeapSort(int a[], int n){for(int j=n/2; j>0; j--)Heapify(a, j, n);for(int j=n; j>1; j--){a[0] = a[j];a[j] = a[1];a[1] = a[0];Heapify(a, 1, j-1);}printf("HeapSort : ");print(a, n);return;}//归并排序的一次合并过程void MergePass(int a[], int low, int mid, int high){int *p = (int*)malloc(sizeof(int)*(high-low+1));assert(p!=NULL);int *pi = p;int i = low, j = mid+1;while(i<=mid && j<=high)*(pi++) = (a[i]<=a[j])? a[i++] : a[j++];while(i<=mid)*(pi++) = a[i++];while(j<=high)*(pi++) = a[j++];pi = p;while(low<=high)a[low++] = *(pi++);free(p);return;}//归并排序,时间复杂度O(nlgn),空间复杂度O(n),稳定排序void MergeSort(int a[], int low, int high){if(low
网页设计常用的几种方法????
用C++数据结构排序方法实现学生成绩拍名
求数据结构用四种排序方法编一程序
XP都有那几种版本,介绍几个常用的!请详细点,我是个新手!
常用的几种视频文件
给我几种记忆的方法
能否给我介绍几中较为常用的屋面防水材料及其施工方法和优缺点,谢谢.
系统中安装了不少程序,请你说出卸载程序的几种常用方法
系统中安装了不少程序说出卸载程序的几种常用方法
数据结构编程问题,做一个学生成绩排序的系统
常见的几种音乐格式中,哪种格式的效果最好,哪种其次?最好给个排序
给我推荐几种比较好的常用的软件,
朋友们给我介绍几种常用的ASP.NET开发工具!
能给几条英语的常用语句吗?
C语言排序的方法
c语言排序的方法
几种常用的英文问候语
卡通画最常用的几种手法!
请教几种常用食物的来历?
交换机的几种常用功能
以太网交换机的几种常用功能
几种常用话的方言
几种常用集成运算放大器的性能参数
处理几十兆的数据排序,最好用什么方法啊?速度要快