一、冒泡排序
public class Pubble {
public static void main(String[] args) {
int []numbers = {2,5,28,90,45,23,68};
Pubble.PubbleSort(numbers);
for (int number : numbers) {
System.out.println(number);
}
}
public static void PubbleSort(int nums[]){
int temp = 0;
int size = nums.length;
for (int i = 0; i < size - 1; i++){
for (int j = 0; j < size - 1 - i; j++){
if(nums[j] > nums[j+1]){
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
}
}
二、选择排序
public class Select {
public static void main(String[] args) {
int array[] = {3,8,4,6,7,12,23};
Select.SelectSort(array);
for (int i : array) {
System.out.println(i);
}
}
public static void SelectSort(int nums[]){
int size = nums.length;
int temp = 0;
for(int i = 0; i < size; i++){
int min = i;
for (int j = i; j < size; j++){
if(nums[j] < nums[min]){
min = j;
}
temp = nums[min];
nums[min] = nums[i];
nums[i] = temp;
}
}
}
}
三、插入排序
public class Insert {
public static void main(String[] args) {
int[] array = {3,7,2,4,1,9,6};
Insert.InsertSort(array);
for (int i : array) {
System.out.println(i);
}
}
public static void InsertSort(int[] array){
int temp = 0;
int size = array.length;
for (int i = 1; i < size; i++){
for (int j = i - 1; j >= 0 && array[j] > array[j+1];j--){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
四、二分法
public class Binary {
public static void main(String[] args) {
int[] array = {3,5,7,3,6,5,3,6,8,9};
System.out.println(Binary.BinarySearch(array,9));
}
public static int BinarySearch(int array[],int findValue){
int start = 0;
int end = array.length-1;
while (start <= end){
int middle = start + (end - start)/2;
int middleValue = array[middle];
if(findValue == middleValue){
return middle;
}else if(findValue < middleValue){
end = middle -1;
}else {
start = middle + 1;
}
}
return -1;
}
}