• java数据结构和算法----第二章


    创建数组

    java中有两种数据类型,基本数据类型(int,double)和对象数据类型,在java中,数组是对象类型,所以在创建数组时必须使用new操作符

    数组有一个length字段,通过它可以得知当前数组的大小。

    int arrayLength=intArray.length;一旦创建数组,数组大小便不可以改变。

    用来存储数据对象的类,被称为容器类。通常容器类不仅存储数据,并且提高访问数据的方法和其他诸如排序等的操作。

    类接口

    类之间责任的分配,是面向对象编程的一个重要任务。类的用户是通过类接口的方式与类相连,由于类的字段经常是私有的,所以类的接口一般指的是类的方法。

    Ordered专题Applelet

    为什么要将数组排序呢,因为可以通过二分查找显著地提高查找速度。

    二分查找

    二分查找就类似于玩游戏时,我们的猜数字游戏,查找速度会提高很多。

    二分查找的代码如下所示:

    int find(int a[])

    {

        int lowerBound=0;

        int upperBound=a.length-1;

        int cur;

        while(true)

            {

                cur=(lowerBound+upperBound)/2;

                if(searchKey==a[cur])

                   return cur;

               else{

                      if(searchKey>a[cur])

                      lowerBound=cur+1;

                      else

                     upperBound=cur-1;

                }

            }

    }

    总结:

    有序数组在实现数据的相关操作时比较简单,但是插入和删除都比较麻烦,因为涉及到填补空位问题、所以在涉及到插入和删除频繁操作时,不应该用数组作为存储。

    对数:用来计算二分查找需要的次数。

    大O表示法:

    为了衡量一个算法的执行时间和处理的数据项的个数之间的关系,提出了该表示法。注意在大O表示法中,不能出现常数。

    无序数组的插入:是一个常数K

    线性查找与N成正比

    二分查找:与log(N)成正比

    该表示法你并没有真正给出算法的运行的实际时间,而只是给出了一个算法的运行时间如何受数据项个数的影响。

  • 相关阅读:
    Android之TabHost使用(引用SDK例子文档)
    Android之在线词典
    校验插入指定结点是否导致编码循环的示例函数
    查表法按日期生成流水号的示例.sql
    备份数据库并提供下载的asp文件
    Metro风格XAML应用程序性能技巧
    导入文本文件时如何指定字段类型.sql
    宝塔形数据的处理.sql
    将某个目录上的Excel表,导入到数据库中.sql
    Using SqlDataReader’s new async methods in .Net 4.5 Beta
  • 原文地址:https://www.cnblogs.com/maowuyu-xb/p/6429194.html
Copyright © 2020-2023  润新知