package com.cn.core.action;
/**
*
* maopao
* 创建人:jiangminghuang
* 创建时间:2016-9-23日 -上午11:47:23
* @version 1.0.0
*
*/
public class maopao {
public static void main(String[] args) {
// 1.冒泡排序
int[] a={4,1,7,3,8,2};
m(a);
// 3.选择排序
int[] z={4,1,7,3,8,2};
xz(z);
// 3.二分法
int[] b = {1,3,6,8,12,15,19,20,35,60};
int flag=20;
int index = binarySearch(b,flag);
System.out.println("3.二分法");
System.out.println("小标:" + flag + " 数值: " + index);
}
//--------------------1.冒泡排序--------------------------------------
public static void m(int[] a){
for(int i=a.length-1;i>0;i--){
for(int j=0;j<i;j++){
if(a[j]>a[j+1]){
int temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
System.out.println("1.冒泡排序");
for(int k=0;k<a.length;k++){
System.out.print(" "+a[k]);
}
System.out.println("\n");
}
//--------------------2.选择排序--------------------------------------
public static void xz(int[] a){
System.out.println("2.选择排序");
for(int i=0;i<a.length - 1;i++){
int min = i;
for(int j=i+1;j < a.length; j++){
if(a[min] > a[j]){
min = j;
}
}
// 交换
if(min != i){
int temp;
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
for(int k = 0; k < a.length; k++){
System.out.print(a[k]);
}
}
System.out.println("\n");
}
//--------------------3.二分法--------------------------------------
public static int binarySearch(int[] b,int flag){
int startBegin=0;// 开始下标
int endBegin=b.length-1;// 结束下标
while(startBegin <= endBegin){
int midPos = (startBegin+endBegin) / 2;// 折半
if(flag == b[midPos]){
return endBegin;
}else if(flag > b[midPos]){
startBegin = midPos + 1;
}else if(flag < b[midPos]){
startBegin = midPos - 1;
}
}
return -1;
}
}
Java冒泡、选择排序以及二分法
最新推荐文章于 2023-06-12 21:45:25 发布