面试准备——排序算法
冒泡排序
从数组中的第一个元素开始到最后一个元素,将相邻两个元素进行比较,若数组左端的元素大于数组有短的元素,
则交换两元素的位置,然后再对该数组剩下的元素进行冒泡排序
// 冒泡排序
void BubbleSort(int arr[], int length)
{
for (int i = 0; i < length; i++)
{
for (int j = 0; j < length - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int temp;
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
}
选择排序
首先在未排序数组中找到最小的数据,将其放在首位,然后再在剩下的数组中找到最小的数,将其放在首位
直到所有的元素排序完成
public static int[] selectionSort(int[] array) {
if (array.length == 0)
return array;
for (int i = 0; i < array.length; i++) {
int minIndex = i;
for (int j = i; j < array.length; j++) {
if (array[j] < array[minIndex]) //找到最小的数
minIndex = j; //将最小数的索引保存
}
int temp = array[minIndex];
array[minIndex] = array[i];
array[i] = temp;
}
return array;
}

浙公网安备 33010602011771号