面试题目集锦 -- 排序算法

      面试过程中,免不了会问一些比较基础的问题,而这些基础的问题肯定要说到排序上去。

      我们知道,排序算法包含插入,选择,冒泡,快速,归并,堆排序等等,大多时候,我们在面试的时候,最常问的排序算法是堆,快速和归并排序,其他的几种相对简单,问的较少,那么,我们只需要在面试前把它们都弄懂然后自己在纸上写出来就可以了。在写这些算法的时候,我查了很多的资料,也看了很多文章,毕竟排序算法非常经典,所以,在这上面花的时间还挺多的。不过,我发现有些排序算法的实现偏复杂,而且不好理解,于是,我整理并写下了这些常用的排序算法,个人感觉还是比较容易理解的。

      当然,我也把算法的实现上传到了这个页面,大家可以去下载(免积分):

http://download.csdn.net/detail/dlutbrucezhang/8071405

      这里,我仅是贴出实现代码的头文件,方便看到这里有哪些排序算法的实现:

#ifndef SORT_ALGORITHM_H
#define SORT_ALGORITHM_H

/*交换函数*/
void swap(int &a, int &b);

/*冒泡排序*/
void BubbleSort(int* array, int n);

/*快速排序*/
int partition(int* array, int low, int high);
void QuickSort(int* array, int low, int high);

/*选择排序*/
void SelectSort(int* array, int n);

/*堆排序*/
void createHeap(int* array, int n);
void adjustHeap(int* array, int i, int n);
void HeapSort(int* array, int n);

/*插入排序*/
void InsertSort(int* array, int n);

/*归并排序*/
void mergeArray(int* array, int first, int mid, int last, int* temp);
void mergeOrder(int* array, int first, int last, int* temp);
void MergeSort(int* array, int n);

/*希尔排序*/
void shellInsert(int* array, int d, int n);
void ShellSort(int* array, int n);

#endif // !SORT_ALGORITHM_H


  • 6
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值