//冒泡排序
public class Text6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] nums= {12,1,6,32,9,88,75,32};
for(int i=0;i<nums.length-1;i++) {
for(int j=0;j<nums.length-1-i;j++) {
if(nums[j]>nums[j+1]) {
nums[j]=nums[j]+nums[j+1];
nums[j+1]=nums[j]-nums[j+1];
nums[j]=nums[j]-nums[j+1];
}
}
}
for(int x:nums) {
System.out.println(x);
}
}
}
//选择排序法
public class Text7 {
public static void main(String[] args) {
int[] nums= {12,1,6,101,32,9,88,75,32,99};
int minindex=0;
for(int i=0;i<nums.length-1;i++) {
minindex=i;
for(int j=i+1;j<nums.length;j++) {
if(nums[minindex]>nums[j]) {
minindex=j;
}
}
if(minindex!=i) {
nums[minindex]=nums[minindex]+nums[i];
nums[i]=nums[minindex]-nums[i];
nums[minindex]=nums[minindex]-nums[i];
}
}
for(int x:nums) {
System.out.println(x);
}
}
}
//直接插入排序算法
public class Text8 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] nums= {12,1,6,32,9,88,75,32};
for(int i=1;i<nums.length;i++) {
int temp=nums[i];
int j=0;
for(j=i-1;j>=0;j–) {
if(nums[j]>temp) {
nums[j+1]=nums[j];
}else {
break;
}
}
if(nums[j+1]!=temp) {
nums[j+1]=temp;
}
}
for(int x:nums) {
System.out.println(x);
}
}
}
//二分法查找
public class Text9 {
public static void main(String[] args) {
//必须是有序的,无序先排序
int[] nums= {1,5,6,9,10,15,66};
int index=binarySearch(nums,15);
System.out.println(index);
}
public static int binarySearch(int[] num,int key) {
int start=0;
int end=num.length-1;//结束下标
while(start<=end) {
int middle=(start+end)/2;
if(num[middle]>key) {
end=middle-1;
}else if(num[middle]<key){
start=middle+1;
}else {
return middle;
}
}
return -1;
}
}