
数据结构与算法
Spencer_q
这个作者很懒,什么都没留下…
展开
-
选择排序(Python实现)
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。稳定性的概念:在排序过程中,相同元素的顺序在排序完成后顺序依然不发生变化选择排序相对于冒泡排序的来说是不稳定的当选择排序在(升序每次选择最大的情况下)是有可能发生不稳...原创 2018-09-02 15:48:28 · 350 阅读 · 0 评论 -
希尔排序(python实现)
希尔排序希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文...原创 2018-09-09 18:18:25 · 251 阅读 · 0 评论 -
快速排序(Python实现)
快速排序快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。def quick_sort(alist, firs...原创 2018-09-09 19:54:13 · 207 阅读 · 0 评论 -
插入排序
插入排序有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但...原创 2018-09-06 15:46:08 · 229 阅读 · 0 评论 -
一些简单的加密算法
数据不经过处理在网络上传输是特别不安全的,所以在传递前需要加密后再进行传递,再在接收的时候进行解密得到数据,这样就可以保证数据在传输中的安全了1.MD5算法原理:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。单向性:MD5加密后的数据无法还原(有一些网...原创 2018-09-12 16:22:41 · 1754 阅读 · 0 评论 -
归并排序(Python实现)
归并排序归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。def merge_sort(alist): n = len(alist) if n...原创 2018-09-10 21:51:10 · 297 阅读 · 0 评论