黑马程序员技术交流社区
标题:
选择排序,冒泡排序,二分查找
[打印本页]
作者:
小牛想成为大牛
时间:
2016-11-7 00:26
标题:
选择排序,冒泡排序,二分查找
1. 冒泡排序 循环数组length次,每一次都两两比较相邻的数,先把最大值置于最后一位
public static void main(String[] args) {
int[] arr={1,3,5,100,3,6,2};
printArray(maopao(arr));
}
public static int[] maopao(int [] arr){
int temp;
for(int i=0;i<arr.length-1;i++){
for(int x=0;x<arr.length-1-i;x++){
if(arr[x]>arr[x+1]){
temp=arr[x+1];
arr[x+1]=arr[x];
arr[x]=temp;
}
}
}
return arr;
}
public static void printArray(int[] arr){
System.out.print("[");
for(int i=0;i<arr.length;i++){
if(i==arr.length-1){
System.out.print(arr[i]+"]");
}else {
System.out.print(arr[i]+",");
}
}
}
}
作者:
小牛想成为大牛
时间:
2016-11-7 00:29
2. 选择排序:直接依次将各位上的值变换到应该在的位置
:先取第一位,将其与其他位比较,直到第一位为最小值
public static void main(String[] args) {
int[] arr={1,3,5,100,3,6,2};
printArray(sort(arr));
}
public static int[] sort(int [] arr){
int temp;
for(int i=0;i<arr.length-1;i++){
for(int x=i+1;x<arr.length;x++){
if(arr[i]>arr[x]){
temp=arr[x];
arr[x]=arr[i];
arr[i]=temp;
}
}
}
return arr;
}
public static void printArray(int[] arr){
System.out.print("[");
for(int i=0;i<arr.length;i++){
if(i==arr.length-1){
System.out.print(arr[i]+"]");
}else {
System.out.print(arr[i]+",");
}
}
}
}
作者:
小牛想成为大牛
时间:
2016-11-7 00:30
3. 二分法查找
public static void main(String[] args) {
int[] arr={11,22,33,40,44,55,66};
System.out.println(erFen(arr, 33));
}
public static int erFen(int[] arr,int value){
int max=arr.length-1;
int min=0;
int mid=(max+min)/2;
while(arr[mid]!=value){
if(arr[mid]>value){
max=mid-1;
}
else if (arr[mid]<value) {
min=mid+1;
}
mid=(max+min)/2;
if(min>max){
return -1;
}
}
return mid;
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2