给数组中的元素排序
package test02;
import java.util.Arrays;
public class Ql_MaoPao {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arrs= {22,11,54,33,58,1,6};
bubbleSort03(arrs);
chazhao(arrs,58);
System.out.println(chazhao(arrs,5));
}
/*
* 给定一个无序的数组进行排序
* 每一趟确定最大数或者最小数
* 每一次进行两两
* */
public static void bubbleSort(int[] arrs) {
//[2,33,66,7,11]
//每一趟确定一个最大/最小数
//第一堂:
//一次【2,33,66,7,11】
//二次【2,33,66,7,11】
//三次【2,33,7,66,11】
//四次【2,33,7,11,66】
for(int i=0;i<arrs.length;i++) {//确定躺数
System.out.println("第"+(i+1)+"趟");
for(int j=0;j<arrs.length-1;j++) {
//比较是否交换
if(arrs[j]>arrs[j+1]) {
int temp=arrs[j];
arrs[j]=arrs[j+1];
arrs[j+1]=temp;
}
System.out.println("第"+(j+1)+"次");
System.out.println(Arrays.toString(arrs));
}
}
}
/*
* 降低每一趟的次数*/
public static void bubbleSort02(int[] arrs) {
//[2,33,66,7,11]
//每一趟确定一个最大/最小数
//第一堂:
//一次【2,33,66,7,11】
//二次【2,33,66,7,11】
//三次【2,33,7,66,11】
//四次【2,33,7,11,66】
for(int i=0;i<arrs.length;i++) {//确定躺数
System.out.println("第"+(i+1)+"趟");
for(int j=0;j<arrs.length-1-i;j++) {
//比较是否交换
if(arrs[j]>arrs[j+1]) {
int temp=arrs[j];
arrs[j]=arrs[j+1];
arrs[j+1]=temp;
}
System.out.println("第"+(j+1)+"次");
System.out.println(Arrays.toString(arrs));
}
}
}
public static void bubbleSort03(int[] arrs) {
//[2,33,66,7,11]
//每一趟确定一个最大/最小数
//第一堂:
//一次【2,33,66,7,11】
//二次【2,33,66,7,11】
//三次【2,33,7,66,11】
//四次【2,33,7,11,66】
for(int i=0;i<arrs.length;i++) {//确定躺数
System.out.println("第"+(i+1)+"趟");
boolean flag=false;
for(int j=0;j<arrs.length-1-i;j++) {
//比较是否交换
if(arrs[j]>arrs[j+1]) {
int temp=arrs[j];
arrs[j]=arrs[j+1];
arrs[j+1]=temp;
flag = true;
}
System.out.println("第"+(j+1)+"次");
System.out.println(Arrays.toString(arrs));
}
if(!flag) {
return;//跳出循环}
}
}
}
public static int chazhao(int[] arrs,int value) {
int max=arrs.length-1;
int min=0;
int mid;
while(min<=max) {
mid=(min+max)/2;
if (arrs[mid]>value) {
max=mid-1;
}
else if(arrs[mid]<value) {
min=mid+1;
}
else {
return value;}
}
return -1;
}
}