7.数组选择排序
public static void selectSort(int arr[]) {
/*
* 数组的选择排序:(从小到大的顺序) int arr[35.12.25.69] 第一个位置为焦点进行比较用35和12比较小的放前面[12.35.25.69]
* 用12和25比较小的放前面[12.35.25.69] 用12和69比较小的放前面[12.35.25.69] 第二个位置为焦点进行比较
* 用35和25比较小的放前面[12.25.35.69] 用25和69比较小的放前面[12.25.35.69] 第三个位置为焦点进行比较
* 用35和69比较小的放前面[12.25.35.69] 第四个位置为焦点进行比较 最后一个位置不用比较
*/
for(int i = 0; i < arr.length - 1; i++)// 选位置焦点,最后一个不用考虑
{
for(int j = i + 1; j < arr.length; j++)// 每次都是从焦点位置后一个开始
{
if (arr[i] > arr[j])// 两个变量交换的方法
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
8.冒泡排序
public static void Sort(int[] arr) {
/*int[] arr={13,6,35,3,9}; 第一个元素开始 13和6比较{6,13,65,3,9} 13和65比较{6,13,65,3,9}
* 65和3比较{6,13,3,65,9} 65和9比较{6,13,3,9,65} 第二个元素开始 13和3比较{6,3,13,9,65}
* 13和9比较{6,3,9,13,65} 13和最后面的一位不用比较 第三个元素开始 和剩下的两个不用比较
*/
for (int i = 0; i < arr.length - 1; i++)// 最后一个不用考虑
{
//内循环循环一次就能把当前最大选出来
for (int j = 0; j < arr.length - 1 - i; j++)// -1防止越界-i是外循环一次,内循环参数与比较的元素个数减
{
if (arr[j] > arr[j + 1])// 两个变量交换的方法
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
9.数组的普通查找
10.数组的折半查找