编程面试:算法问题课程列表
幺四四零
这个作者很懒,什么都没留下…
展开
-
05.实现归并排序
说明另一种非常常见的中间排序算法是归并排序。像快速排序一样,归并排序也使用一种分而治之的递归方法来排序数组。它利用了这样一个事实,只要每个排序首先排序,它就比较容易排序两个数组。但是我们只需要一个数组作为输入,那么我们如何从这个数组中得到两个排序的数组呢?那么我们可以递归地将原始输入分成两部分,直到我们达到一个数组的基数大小写。单项数组是自然排序的,所以我们可以开始组合。此组合将展开分割原始数...原创 2020-04-20 15:21:25 · 165 阅读 · 0 评论 -
04.实现快速排序
说明这里我们将介绍一种中间排序算法:快速排序。快速排序是对冒泡排序的一种改进,它是由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。简单的说,快速排序就是在数组中找一个基准值,比...原创 2020-04-20 14:10:19 · 130 阅读 · 0 评论 -
03.实现直接插入排序
说明我们来看下面的排序方法是插入排序中的一种--直接插入排序。插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即...原创 2020-04-19 14:25:43 · 362 阅读 · 0 评论 -
02.实现选择排序
说明这里我们将实现选择排序。选择排序跟冒泡有点类似,冒泡是比较相邻两个元素的大小,并交换元素,选择排序则是比较相邻元素的大小以后,记录最小元素在数组中的位置,在每趟循环结束以后交换一次元素选择排序每趟循环只交换了一次元素,因此效率比冒泡排序更高。选择排序在所有情况下都具有二次时间复杂度。任务:编写一个函数selectionSort,它将下列的数组作为输入,并按一定顺序排序以后返...原创 2020-04-18 18:37:11 · 160 阅读 · 0 评论 -
01.实现冒泡排序
说明这是排序算法的第一个挑战。给定一个未排序的数组,然后经过排序返回一个有顺序的数组。在接下来的算法挑战中,我们将通过几种不同的方法来实现排序,并在这些不同的方法之间学习一些权衡。虽然大多数现代语言都有内置的这种操作的排序方法,但仍然需要了解一些常见的基本方法,并了解如何实现它们。冒泡排序在这里我们将看到冒泡排序。冒泡排序通过重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错...原创 2020-04-16 18:17:56 · 201 阅读 · 0 评论