package com.cn;
/**
* 选择排序
* @author Administrator
*
*/
public class Zdazhi {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = {22,13,20,10,11,34};
selectMax(arr);
}
public static void selectMax(int[] arr)
{
//比较的次数
for(int j=0; j<arr.length-1; j++)
{
//把最大值放在第0号位
for(int i =j+1; i<arr.length; i++)
{
if(arr[j]<arr[i])
{
int temp =arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
for(int i =0; i<arr.length; i++)
{
System.out.print(arr[i]+",");
}
}
}
package com.cn;
/**
* 冒泡排序
* @author Administrator
*
*/
public class Maopao {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = {11,22,33,44,55,10};
selectshort(arr);
}
public static void selectshort(int[] arr)
{
//比较次数
for(int j=0; j<arr.length-1; j++)
{
//把最大值放在最后一位
for(int i=0; i<arr.length-1-j; i++)
{
if(arr[i]>arr[i+1])
{
int temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] = temp;
}
}
}
for(int i =0; i<arr.length; i++)
{
System.out.print(arr[i] + ",");
}
}
}
package com.cn;
/**
* 折半查找(二分查找)只适用于有序的数组
* @author Administrator
*
*/
public class Erfen {
public static void main(String[] args) {
// TODO Auto-generated method stub
// int[] arr = {13,10,23,15,34,22,12};
int[] arr = {10,12,13,15,22,24,34};
//int index = selecter(arr, 23);
int index = selectmax(arr, 13);
System.out.println("索引值为:"+ index);
}
//折半查找(二分查找)
public static int selectmax(int[] arr, int tater)
{
int max =arr.length-1;
int min =0;
int mid = (max+min)/2;
while(true)
{
if(tater>arr[mid])
{
min=mid+1;
}
else if(tater<arr[mid])
{
max=mid-1;
}
else
{
return mid;
}
mid = (max+min)/2;
if(min>max)
{
return -1;
}
}
}
//遍历法,遍历数组中的每个元素与目标元素比较
public static int selecter(int[] arr, int tater)
{
for(int i=0; i<arr.length; i++)
{
if(arr[i]==tater)
{
return i;
}
}
return -1;
}
}