
数据结构和算法
zz_cl
这个作者很懒,什么都没留下…
展开
-
数据结构
数据结构:计算机存储、组织数据的方式。 数据结构下又分: 1.集合结构:数据结构中的元素之间除了"同属一个集合" 的相互关系外,别无其他关系; 2.线性结构:数据结构中的元素存在一对一的相互关系; 3.树形结构:数据结构中的元素存在一对多的相互关系; 4.图形结构:数据结构中的元素存在多对多的相互关系。 常用的线性结构有:线性表,栈,队列,双队列,数组,串。 常见的非线性结构有:二维翻译 2016-09-04 08:26:30 · 460 阅读 · 0 评论 -
二分查找法
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 public static int binary_search(int[] array , int value){ int low = 0; int hight = array.lengt翻译 2016-09-04 08:17:39 · 399 阅读 · 0 评论 -
Java经典问题算法大全
/*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... */ package cn.com.flywater.FiftyAlgorthm; public class FirstRabbit {转载 2016-09-03 18:05:46 · 287 阅读 · 0 评论 -
快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列 。//快速排序 void quick_sort(int s[], int l, int r) { //对l到r区间进行排原创 2016-09-03 17:32:39 · 351 阅读 · 0 评论 -
选择排序
选择排序算法,数组中的每个元素与第一个元素比较,找最值,每轮放置一个最值。 for(int i=0;i<arr.length-1;i++){ for(int j=i+1;j<arr.length;j++){ if(arr[i]>arr[j]){ } } } 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,原创 2016-09-03 15:44:18 · 269 阅读 · 0 评论 -
冒泡排序
冒泡排序算法就是相邻两两比较,每趟比较决定一个最值。 for(int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1]) { int temp=a[j]; a[j]=a[j+原创 2016-09-03 15:27:54 · 276 阅读 · 0 评论 -
插入排序
插入排序算法是一个对少量元素进行排序的有效算法。插入排序的工作原理与打牌时整理手中的牌的做法类似,无论什么时候手中的牌都是排序好的。id insertSort(int a[]){ int length=a.length; //数组长度 int j; //当前值的位置 int i; /原创 2016-09-03 15:10:48 · 556 阅读 · 0 评论 -
java算法
算法:解决问题使用的一种策略(其实就是策略),算法的优劣则要用空间复杂度与时间复杂度来衡量。算法分析其实就是统计所需的资源(花费时间,占用内存)。常见的如:递归法(调用自身;需有一个递归结束条件,称为递归出口。),穷举法(暴力破解法,逐个推算),迭代法(迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,切线求根,近似求解)。 时间复杂度 T(n)=O(f(n))算法的时间复杂度是一个函数,原创 2016-09-03 10:59:21 · 431 阅读 · 0 评论