1.数组排序
01.数组排序之冒泡排序:
相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处
public class ArrayDemo {
public static void main(String[] args) {
int[] arr = { 5, 7, 2, 9, 6, 4, };
bubbleSort(arr);
}
private static void bubbleSort(int[] arr) {//冒泡排序
for (int x = 0; x < arr.length - 1; x++) {
for (int y = 0; y < arr.length - 1 - x; y++) {
if (arr[y] > arr[y + 1]) {
int temp = arr[y];
arr[y] = arr[y + 1];
arr[y + 1] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
02.数组排序之选择排序:
从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处
public class ArrayDemo {
public static void main(String[] args) {
int[] arr = { 5, 7, 2, 9, 6, 4, };
selectSort(arr);
}
private static void selectSort(int[] arr) {//选择排序
for (int x = 0; x < arr.length - 1; x++) {
for (int y = x + 1; y < arr.length; y++) {
if (arr[y] < arr[x]) {
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
03.把字符串中的字符进行排序:
分析:
A:定义一个字符串
B:把字符串转换为字符数组
C:把字符数组进行排序
D:把排序后的字符数组转成字符串
E:输出最后的字符串
public class ArrayTest {
public static void main(String[] args) {
// 定义一个字符串
String s = "dacgebf";
// 把字符串转换为字符数组
char[] chs = s.toCharArray();
// 把字符数组进行排序
bubbleSort(chs);
//把排序后的字符数组转成字符串
String result = String.valueOf(chs);
//输出最后的字符串
System.out.println("result:"+result);
}
// 冒泡排序
public static void bubbleSort(char[] chs) {
for (int x = 0; x < chs.length - 1; x++) {
for (int y = 0; y < chs.length - 1 - x; y++) {
if (chs[y] > chs[y + 1]) {
char temp = chs[y];
chs[y] = chs[y + 1];
chs[y + 1] = temp;
}
}
}
}
}
2.查找
01.二分查找:
基本查找:数组元素无序(从头找到尾)
二分查找(折半查找):数组元素有序
public class ArrayDemo {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5, 6 };
int index=getIndex(arr, 2);
System.out.println(index);
}
public static int getIndex(int[] arr, int value) {//二分查找
int min = 0;
int max = arr.length;
int mid = (min + max) / 2;
while (arr[mid] != value) {
if (arr[mid] < value) {
min = mid + 1;
} else if (arr[mid] > value) {
max = mid - 1;
}
if (min > max) {
return -1;
}
mid = (max + min) / 2;
}
return mid;
}
}