![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 62
windskymr
这个作者很懒,什么都没留下…
展开
-
Python 实现的冒泡排序
冒泡排序属交换排序, 最简单的一种排序算法 排序思路: n为数组长度,经过n趟比较,每趟比较相邻的两元素,将较大元素放到最后,当有一趟比较中没有交换时退出 import util #冒泡排序 class BubbleSort: def sort(self,arrData): length = len(arrData); for i in r转载 2015-05-24 12:37:23 · 709 阅读 · 0 评论 -
放一段插入排序的代码,很多地方都用得到
public class ArrayUtil { @SuppressWarnings({ "rawtypes", "unchecked" }) public static void swipArray(List rankList, int x, int y){ Object tmp = rankList.get(x); rankList.set(x, rankList.get(y)转载 2016-12-12 11:04:45 · 398 阅读 · 0 评论 -
几种排序算法比较
一、引言 排序算法,是计算机编程中的一个常见问题。在日常的数据处理中,面对纷繁的数据,我们也许有成百上千种要求,因此只有当数据经过恰当的排序后,才能更符合用户的要求。因此,在过去的数十载里,程序员们为我们留下了几种经典的排序算法,他们都是智慧的结晶。本文将带领读者探索这些有趣的排序算法,其中包括介绍排序算法的某些基本概念以及几种常见算法,分析这些算法的时间复杂度,同时在最后将介绍我们独创的一...原创 2015-05-09 13:49:40 · 103 阅读 · 0 评论 -
快速排序
快速排序使用分治法策略来把一个串行分为两个子串行。 步骤为: 1. 从数列中挑出一个元素,称为“基准”(pivot), 2。重新排列数列,小的在基准前,大的在基准后,基准位于中间,称为分区(partition)操作 3。递归排列两个分区 最好的情况下,每次排列分区操作将数列分为等长的两个部分,这时调用次数为O(logn); 最坏的情况下,每次选中的基准为最小数或最大数,每次排...原创 2015-05-09 13:52:22 · 116 阅读 · 0 评论 -
直接插入排序
插入排序包括 直接插入排序, 折半插入排序, Shell排序 package com.longshine.arthmetic.sort; import java.util.ArrayList; import java.util.List; import com.longshine.arthmetic.NumSortElement; import com.longshine...原创 2015-05-09 17:47:22 · 92 阅读 · 0 评论 -
Python折半插入排序
折半插入排序是插入排序的一种,这是直接插入排序的改进,当将要为i元素排序时,[0,i-1]位置的元素已有序,用折半查找法比顺序查找一般要快些. 实现思路: i属于[1,n], 在[0,i-1]中取得中间位置k=(min+max)/2,这个区间已排好序,递归比较中间值, 直到 |min-max| <=1为止,将i元素插入到k附近. #折半排序类 class HalfInsertS...原创 2015-05-11 12:44:48 · 776 阅读 · 0 评论 -
Python Shell排序
Shell排序属于插入排序, 增量为1的Shell排序就是直接插入排序 设增量用h表示,Shell排序就是 将数组分为k = (len-1)/h组, 每组为i + n*h 序列 (n为整数 , n=[0,k-1],i=[0,k-1] ) 即分成序列: 0,h,2*h...... 1,1+h , 1+ 2*h..... 2, 2 +h, 2 + 2* h... .... i ,...原创 2015-05-11 16:29:23 · 203 阅读 · 0 评论 -
python 归并排序
排序思路: 1.将数组分成两组A,B,建立临时数组 C,C长度=A + B 2. i,j分别属于A,B 3. 若A[i] > B[j] , 将B[j]放入C, j++; 否则 A[i]放入C, i++ 4.循环3步骤,将A或B中剩余的元素放入C,再将C复制到数组中 5.递归3-4直到A,B序列的长度=1 #归并排序 class MergeSort: def...原创 2015-05-16 09:43:50 · 160 阅读 · 0 评论 -
Python实现的堆排序
堆排序属于选择排序,它其实就是一个建立大顶堆的过程 大顶堆: ki <= k2i+1 且 ki <= k2i+2; i>=0;ki>=0& ki<=n; 堆排序相较于直接选择排序的优势在于在建堆的过程中,剩余序列元素已经部分有序,剩余部分减少交换次数,节省时间, 本人觉得也有点像冒泡排序(每一次比较后将最大值放到后面). 它的时间复杂度为O(nlo...原创 2015-05-16 16:45:34 · 166 阅读 · 0 评论