算法
云梦软件
云梦软件致力于在校大学生计算机前沿技术复合型才培养,让每位IT学子从校园走上工作岗位时能无缝连接。
展开
-
插入排序
插入排序 插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。 1. 算法步骤 将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。 从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当.原创 2020-12-29 17:36:37 · 128 阅读 · 0 评论 -
算法-选择排序
编译器:goland 编程语言 go 选择排序的基本思想: 每一趟在n-i+1(i=1,2,3…,n-1)个记录中选取关键字最小的记录与第i个记录交换,并作为有序序列中的第i个记录。 例如: 待排序列: 43,65,4,23,6,98,2,65,7,79 第一趟: 2,65,4,23,6,98,43,65,7,79 第二趟: 2,4,65,23,6,98,43,65,7,79 第三趟: 2,4,6,23,65,98,43,65,7,79 第四趟: 2,4,6,7,43,65,98,65,2...原创 2020-12-25 15:03:55 · 165 阅读 · 0 评论 -
二分查找方法
二分查找 将一组有序数组一分为二,将要查找元素与分割点比较,有三种情况: 1.查找元素比分割点大 。->在分割点右侧继续查找 2.查找元素比分割点小。->在分割点左侧继续查找 3.查找原始等于分割点。->直接返回。 使用二分查找方法,每经过一次查找,查找范围缩小一半,如果数组元素个数为n,假设n是3的幂。第一次查找后,剩下N/2个元素继续查,第二次(n/2)/2个元素需要继续查。则第i次比较后,剩下n/2i个元素需要继续搜索。当i=log2n(以2为底n的对数),只剩下一..原创 2020-12-24 22:12:42 · 632 阅读 · 0 评论 -
快速排序(golang版本实现)
1. 快速排序算法 算法描述:是对插入算法的一种优化,利用对问题的二分化,实现递归完成快速排序 ,在所有算法中二分化是最常用的方式,将问题尽量的分成两种情况加以分析, 最终以形成类似树的方式加以利用,因为在比较模型中的算法中,最快的排序时间 复杂度为O(nlgn). 算法步骤 将数据根据一个值按照大小分成左右两边,左边小于此值,右边大于 将两边数据进行递归调用步骤1 将所有数据合并 package main import "fmt" func QuickSort(array []in.原创 2020-12-24 21:41:12 · 199 阅读 · 0 评论