算法
半缘修道半缘君丶
志存高远,笃行不倦。言曌博客,技术交流 QQ/微信:847064370
展开
-
八大排序算法详解
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。本文将依次介绍上述八大排序算法。算法一:插入排序插入排序示意图插入排序是一种最简单直观的排序算法,它的工作原理是通过构原创 2017-07-16 15:51:39 · 825 阅读 · 0 评论 -
分治法浅谈
最近开始做算法题,在做到“求最大子数组”的时候,看到提示中说到了要用分治法,于是学习一下,这个学期的算法课里其实也讲了。先把题目贴出来吧。Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given th原创 2018-01-03 20:25:59 · 964 阅读 · 0 评论 -
斐波那契数列的三种解法
写一个函数,输入n,求斐波那契数列的第n项。斐波那契数列的定义如下 一、效率极低的解法(递归)课本的上为了讲解递归算法,经常用这个例子。让我们看一下它的实现package algorithm;public class Fibonacci_recursion { // 1 1 2 3 5 8 13 21 34 55 long Fibonacci(int原创 2018-01-03 20:27:01 · 1594 阅读 · 1 评论 -
查找算法——二分查找
看二分查找前,我们先看一下普通的查找,即线性查找。一、线性查找,时间复杂度 O(n)package algorithm;public class Search_linear { int Search(int [] arr, int x) { for(int i=0;i if(arr[i]==x) retur原创 2018-01-03 20:27:57 · 885 阅读 · 0 评论 -
排序算法——快速排序
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快原创 2018-01-03 20:29:01 · 1089 阅读 · 0 评论 -
排序算法——归并排序
归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。分而治之可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实现(也可采用迭代的方式去实现)。分阶转载 2018-01-03 20:31:00 · 1020 阅读 · 0 评论