Arrays Study Guide: Difference between revisions
From charlesreid1
(→Java) |
|||
| Line 45: | Line 45: | ||
decrement i | decrement i | ||
</pre> | </pre> | ||
===Insertion Sort=== | |||
Insertion sort is a simple algorithm that involves two nested lists, and is therefore quadratic complexity. | |||
* Stepping through the list one element at a time, such that everything before your pointer is sorted. | |||
* Start with a reference to the last sorted element | |||
* Now have a walker element that points to the last sorted element | |||
* Move it down one, and you're going to add the next (unsorted) element to the club of sorted elements | |||
* Do this by scooting it forward, toward the front of the list, as many times as needed. | |||
<pre> | |||
for i in range 1 to length(A): | |||
j = i | |||
while j>0 and A[j-1] > A[j]: | |||
swap( A[j] , A[j-1] ) | |||
decrement j | |||
end for | |||
==Flags== | ==Flags== | ||
Revision as of 01:30, 6 July 2017
Study guide for array data structures.
Definitions
array - a contiguous block of memory that is fixed in size and that can be randomly accessed using integer indices
null - a reference to nothing, or to a non-existent memory location
Abstract Data Types/Interfaces
General
(None)
Java
Java provides an Arrays class with the following functionality:
- equals(A,B) - boolean, true iff $ A_i = B_i \quad \forall i $
- fill(A,x) - fills A with values x
- copyOf(A,n) - returns an array of size n, copied from A
- copyOfRange(A,s,t) - returns an array of size t-s, copied from corresponding indices of A
- toString(A) - string representation of A
- sort(A) - sort A using a tuned quicksort (see Java API Docs for implementation reference)
- sort(A, comp) - sort A using the specified Comparator object
- binarySearch(A,x) - perform binary search for x in A
Principal Operations and Algorithms
Important algorithms include:
- fisher-yates shuffle
- insertion sort
- sequential search
- binary search
Fisher Yates Shuffle
Fisher Yates shuffle is a technique for shuffling arrays.
- Pointer that starts and end and moves to front
- Randomly swap the pointer with an item between it and the front
for i in range (n-1) to (0):
j = random number between 0 and i
swap array[i], array[j]
decrement i
Insertion Sort
Insertion sort is a simple algorithm that involves two nested lists, and is therefore quadratic complexity.
- Stepping through the list one element at a time, such that everything before your pointer is sorted.
- Start with a reference to the last sorted element
- Now have a walker element that points to the last sorted element
- Move it down one, and you're going to add the next (unsorted) element to the club of sorted elements
- Do this by scooting it forward, toward the front of the list, as many times as needed.
for i in range 1 to length(A):
j = i
while j>0 and A[j-1] > A[j]:
swap( A[j] , A[j-1] )
decrement j
end for
Flags
| Arrays Part of Computer Science Notes
Series on Data Structures
Arrays Study Guide
Arrays
Python: Arrays/Python · Arrays/Python/Sizeof · Arrays/Python/AppendCost · Arrays/Python/CaesarCipher · Arrays/Python/CompactArrays · Arrays/Python/DynamicArray
Java: Arrays/Java · Arrays/Java/CaesarCipher · Arrays/Java/FisherYates · Arrays/Java/PythonList · Arrays/Java/Repeatedly_Remove
Categories: Category:Python Arrays
Flags · Template:ArraysFlagBase · e |