Data Structures & Algorithms in Java ---- Arrays
• Arrays in Java are objects, created with the new operator.
• Unordered arrays offer fast insertion but slow searching and deletion.
• Wrapping an array in a class protects the array from being inadvertently altered. • A class interface comprises the methods (and occasionally fields) that the class user can access. • A class interface can be designed to make things simple for the class user. • A binary search can be applied to an ordered array. • The logarithm to the base B of a number A is (roughly) the number of times you can divide A by B before the result is less than 1. • Linear searches require time proportional to the number of items in an array. • Binary searches require time proportional to the logarithm of the number of items. • Big O notation provides a convenient way to compare the speed of algorithms. • An algorithm that runs in O(1) time is the best, O(log N) is good, O(N) is fair, and O(N2) is pretty bad.
2、Big O notation
Automobiles are divided by size into several categories: subcompacts, compacts, midsize, and so on. These categories provide a quick idea what size car you're talking about, without needing to mention actual dimensions. Similarly, it's useful to have a shorthand way to say how efficient a computer algorithm is. In computer science, this rough measure is called Big O notation.
3、Binary Search with the find() Method
public int find(double searchKey)
{
int lowerBound = 0;
int upperBound = nElems - 1;
int curIn;
while (true)
{
curIn = (lowerBound + upperBound) / 2;
if (a[curIn] == searchKey)
{
return curIn; // found it
}
else if (lowerBound > upperBound)
{
return nElems; // can't find it
}
else // divide range
{
if (a[curIn] < searchKey)
{
lowerBound = curIn + 1; // it's in upper half
}
else
{
upperBound = curIn - 1; // it's in lower half
}
} // end else divide range
} // end while
} // end find()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.