c语言的几个算法排序

c语言的几个算法排序

ID:8811954

大小:241.50 KB

页数:15页

时间:2018-04-08

c语言的几个算法排序_第1页
c语言的几个算法排序_第2页
c语言的几个算法排序_第3页
c语言的几个算法排序_第4页
c语言的几个算法排序_第5页
资源描述:

《c语言的几个算法排序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、算法排序http://blog.csdn.net/xiajun07061225/article/details/6898246下面简要总结了常用的一些排序算法。如有错误,还请大家指正、见谅~~谢谢~~【1】插入排序:是一个对少量元素进行排序的有效算法。实现比较简单。时间复杂度:O(n^2),空间复杂度:O(1)。是稳定的排序方法。代码:viewplaincopytoclipboardprint?1.//insertion sort  2.#include   3.using n

2、amespace std;  4.  5.//insertion sort  6.void InsertionSort(int *a,int n)  7.{  8.    int temp;  9.    for(int i = 1;i < n;++i)  10.    {  11.        temp = *(a + i);  12.        int j = i - 1;  13.        while(j >= 0 && *(a + j) > temp)  14.        

3、{  15.            *(a + j + 1) = *(a + j);  16.            --j;  17.        }  18.        *(a + j + 1) = temp;  19.    }  20.}  21.  22.int main()  1.{  2.    int n,temp;  3.    cout<<"please input the number of the values that need to sort:"<

4、4.    cin>>n;  5.    int *a = (int*)malloc(n * sizeof(int));  6.    cout<<"please input each value:"<>temp;  10.        *(a + i) = temp;  11.    }  12.    /* 13.    //insertion sort 14.   

5、 for(int i = 1;i < n;++i) 15.    { 16.        temp = *(a + i); 17.        int j = i - 1; 18.        while(j >= 0 && *(a + j) > temp) 19.        { 20.            *(a + j + 1) = *(a + j); 21.            --j; 22.        } 23.        *(a + j + 1) = temp; 

6、24.    }*/  25.    InsertionSort(a,n);  26.  27.    cout<<"the values after sort:"<

7、方是:在查找插入位置的时候可以采用二分查找,但是这样依然不可以把时间复杂度降低为O(nlogn),因为移动元素的复杂度没有降低。所以时间复杂度仍然是O(n^2)。做此改进需要添加函数InsertLoc用于二分查找需要插入的位置,以及修改函数InsertionSort的实现。具体如下:viewplaincopytoclipboardprint?1.//改进:用二分查找来找到插入的位置  2.//在数组a[low]---a[high]查找val插入的位置  3.int InsertLoc(int *a

8、,int low,int high,int val)  4.{  5.    if(low == high)  1.    {  2.        if(val > *(a + low))return (low + 1);  3.        else  4.            return low;  5.    }  6.    int mid = (low + high) / 2;  7.    if(val > *(a + mid) && val > *(a + m

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。