package com.gaoyz.controller;
import java.util.Arrays;
/**
* @Author soul yzg
* @Date 2021/3/22 17:37
* 努力学习 天天进步
*/
public class Main {
public static void main(String[] args) {
int[] newStr = {1, 3, 5, -1, 9, 6, 8};
int tmp;
for (int i = 0; i < newStr.length; i++) {
for (int j = 0; j < newStr.length - 1; j++) {
if (newStr[j] < newStr[j + 1]) {
tmp = newStr[j];
newStr[j] = newStr[j + 1];
newStr[j + 1] = tmp;
}
}
}
System.out.println(Arrays.toString(newStr));
}
}
package com.gaoyz.controller;
import java.util.Arrays;
/**
* @Author soul yzg
* @Date 2021/3/22 19:55
* 努力学习 天天进步
*/
public class Run {
public static void main(String[] args) {
int[] arr = {-1, 2, 10, 4, -6, 60, 18, 36, -100, 90, 90, 40, 64};
sort(arr, 0, arr.length - 1);
System.out.println(Arrays.toString(arr));
}
public static void sort(int[] arr, int low, int high) {
if (low >= high) {
return;
}
int i = low;
int j = high;
//一开始数组中的第一个元素
int key = arr[i];
while (i < j) {
//只要右边的数一直比左边的基数大,右边的指针一直往左滑动
while (arr[j] >= key && i < j) {
j--;
}
//交换
if (i < j) {
int t;
t = arr[j];
arr[j] = arr[i];
arr[i] = t;
}
while (arr[i] <= key && i < j) {
i++;
}
if (i < j) {
int t;
t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
//对基准左边的集合重复操作
sort(arr, low, i - 1);
//对基准左边的集合重复操作
sort(arr, i + 1, high);
}
}
}
package com.gaoyz.controller;
/**
* @Author soul yzg
* @Date 2021/3/23 9:07
* 努力学习 天天进步
*/
public class BinarySearch {
public static void main(String[] args) {
int[] arr = {1, 3, 6, 0, 4, 7, 9, 37, 40};
int index = binarySearch(arr, 37);
System.out.println("需要查找的元素,索引为:" + index);
}
private static int binarySearch(int[] arr, int iem) {
int low = 0;
int high = arr.length - 1;
int index = -1;
while (low <= high) {
int mid = (low + high) / 2;
int guess = arr[mid];
if (iem == guess) {
index = mid;
break;
}
if (iem > guess) {
low = mid + 1;
}
if (iem < guess) {
high = mid - 1;
}
}
return index;
}
}