关于排序

这段时间复习数据结构,今天看到了排序,简单的记录下,便于后续总结之用

所谓排序,就是整理文件中的记录,使其按照关键字的递增(或递减)的顺序排列起来。

一、排序的基础知识

1、被排序的对象——文件

文件是由一组记录组成,记录则由若干个数据项(或域)组成。其中有一项可用来标识一个记录,成为关键字项。该数据项的值称为关键字(Key)。

2、排序运算的依据——关键字

关键字的类型可以是数字类型,也可以是字符类型。

3、排序的稳定性

(参见程序员面试宝典相关章节)

稳定的排序:冒泡排序;插入排序;归并排序;桶排序;基数排序;二叉树排序;图书馆排序

不稳定的排序:选择排序;希尔排序;堆排序;快速排序;


二、排序算法的分别介绍


1、冒泡排序,时间复杂度平均为O(n^2), 相比之下,效率较低,小数据量还可以,大的数据量尽量采用其他排序方法。

参考:http://blog.csdn.net/morewindows/article/details/6657829


2、插入排序,时间复杂度平局同为O(n^2)。

参考实现:

void Insertsort(int a[], int n)  
{  
    int i, j;  
    for (i = 1; i < n; i++)  
        if (a[i] < a[i - 1])  
        {  
            int temp = a[i];  
            for (j = i - 1; j >= 0 && a[j] > temp; j--)  
                a[j + 1] = a[j];  
            a[j + 1] = temp;  
        }  
}  


3、希尔排序,


4、归并排序




快速排序,参考:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值