Sort Integers
ID: 463; naive
Solution 1 (Java)
public class Solution {
/**
* @param A: an integer array
* @return: nothing
*/
public void sortIntegers(int[] A) {
for (int i = 0; i < A.length; i++) {
int minIndex = i;
for (int j = i; j < A.length; j++) {
if (A[j] < A[minIndex]) {
minIndex = j;
}
}
int temp = A[i];
A[i] = A[minIndex];
A[minIndex] = temp;
}
}
}
Notes
Selection sort
Each time, find the minimum number and swap it with the first number of the unsorted list.
Solution 2 (Java)
public class Solution {
/**
* @param A: an integer array
* @return: nothing
*/
public void sortIntegers(int[] A) {
for (int i = 0; i < A.length; i++) {
int num = A[i];
int j = i - 1;
while (j >= 0 && A[j] > num) {
A[j + 1] = A[j];
j--;
}
A[j + 1] = num;
}
}
}
Notes
Insertion sort
This is similar to playing card and sorting them. If the current number is larger than its previous number, we make space and move it to a proper position to the left.
Solution 3 (Java)
public class Solution {
/**
* @param A: an integer array
* @return: nothing
*/
public void sortIntegers(int[] A) {
while (true) {
boolean swap = false;
for (int i = 0; i < A.length - 1; i++) {
if (A[i] > A[i + 1]) {
int temp = A[i];
A[i] = A[i + 1];
A[i + 1] = temp;
swap = true;
}
}
if (!swap) break;
}
}
}
Notes
Bubble sort
We look at the numbers in pairs. If there is an inversion in the pair, we swap the two numbers. We keep swapping until we cannot swap.
Last updated
Was this helpful?