数据结构与算法
Hufft
厚积而薄发
展开
-
排序算法--冒泡排序法
冒泡排序法是通过重复地比较值列相邻的两个元素,并在两者的次序与其他元素的次序不同时,交换两者位置从而实现对值列的排序。冒泡排序法的一般实现策略为:搜索整个值列,比较相邻元素,如果两者的相对次序不对,则 交换他们。其结果是最大值“像水泡一样”移动到值列的最后一个位置上,这也是它在最终完成排序的值列中的合适位置。然后再次搜索值列,将第二大值移动到倒数第二个位置上,重复该过程,直至所有的元素到正确位置上位置。原创 2016-03-30 19:05:58 · 434 阅读 · 0 评论 -
排序算法--快速排序法
快速排序法通过使用任意选择的分割元素来分割值列,然后递归地对分割元素的任意一端子列进行排序,从而实现值列的排序。快速排序算法的一般性策略如下:首先,在值列中选择一个元素作为分割元素,其次分割值列,使分割元素左侧的所有元素都小于它,其右侧的所有元素都大于它。最后,(递归地)对两个分割部分应用上述的排序策略。原创 2016-03-28 00:00:19 · 347 阅读 · 0 评论 -
排序算法--归并排序法
排序算法--归并排序法归并排序算法通过递归地平分值列,直至所有的子列都只有一个元素,然后按照次序合并这些子列,从而实现对值列的排序。归并排序算法的一般实现策略为:首先将值列分为大致相同的两个部分,然后递归地对各个子列进行递归分解。重复对值列的递归分解过程,直至满足递归地基本条件,即值列按照定义的次序分解为多个只包含一个元素的子列。然后,在控制递归调用结构,该算法将两次递归调用中产生的两个有序子列合并为一个有序子列。原创 2016-03-28 09:09:34 · 422 阅读 · 0 评论 -
排序算法--选择排序法
选择排序法是将某个特定的值有序的放置在其最终位置上,并重复该过程,以实现对值列的排序。选择排序法的一般实现策略是:搜索整个值列以找到最小值,将该值与值列中的第一个位置的值进行交换。搜索剩下的值列(第一个值除外),已找到其中最小的值,然后将该值与值列中的第二个位置进行交换。以此类推。原创 2016-03-29 11:04:11 · 461 阅读 · 0 评论 -
排序算法--插入排序法
插入排序法是将某特定值插入到值列的有序子集中,并重复该过程,直至实现对值列的排序。一次将一个未排序的元素插入到有序子集的合适位置中,直至整个值列按序排列为止。插入排序法的一般实现策略为:排列值列中的前两个值,并在必要时交换他们。在相对于前两个值(有序的)的适当位置插入值列的第三个值,然后再相对于前三个值(有序的)的适当位置插入插入第四个值,依次类推。原创 2016-03-29 11:56:01 · 319 阅读 · 0 评论