冒泡排序和二分法排序的比较!!!

来源:互联网 发布:java ftp 上传文件 编辑:程序博客网 时间:2024/05/22 15:10

冒泡排序

package com.sxt;



public class MaoPaoDemo {
    public static void main(String[] args) {
int []a={1,5,2,67,34,876};
for(int i=1;i<a.length;i++){
int temp=0;
for(int j=0;j<a.length-i;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}

}
for (int s : a) {

System.out.println(s);
}
}

}


二分法排序

package com.sxt;


/**
 * 二分法
 * 
 * @author Administrator
 *
 */
public class TwoDemo {
public static void main(String[] args) {
int a[] = { 1, 3, 6, 8, 12, 56, 100 };
int e = ef(a, 2);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              System.out.println(e);
}


public static int ef(int a[], int n) {
// 砍半取中间值进行比较
int s = 0, e = a.length - 1;
int m = (s + e) / 2;
while (a[m] != n && e > s) {
// 在前半部分
if (a[m] > n) {
e = m - 1;
}
// 在后半部分
else if (a[m] < n) {
s = m + 1;
}
m = (s + e) / 2;
}
//
if (a[m] == n) {
return m;
} else {
return -1;
}


}
}