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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题目集锦 -- 排序算法相关的知识,希望对你有一定的参考价值。

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

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

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

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





以上是关于面试题目集锦 -- 排序算法的主要内容,如果未能解决你的问题,请参考以下文章

数据结构与算法面试之链表问题集锦(下)

代码与算法集锦-归并排序+树状数组+快排+深度优先搜索+01背包(动态规划)

排序算法文章集锦

⭐算法入门⭐《二分枚举》中等02 —— LeetCode 面试题 10.09. 排序矩阵查找

遇到的面试题目之排序算法

常用Javascript代码片段集锦