java实现的选择排序、冒泡排序、二分查找,java冒泡
分享于 点击 42002 次 点评:37
java实现的选择排序、冒泡排序、二分查找,java冒泡
<span >JAVA实现的冒泡排序和选择排序</span>
package com.marthevin.hhu.demo1226;
public class Demo1226 {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
Demo1226 demo = new Demo1226();
int[] arr = {2,54,23,22,65,3,64,22,89,235,53232,432,4533};
//demo.bubbleSort(arr);
demo.selectSort(arr);
//System.out.println(demo.searchIndex(arr, 22, 0, arr.length-1));
System.out.println(demo.halfSearch(arr, 34343));
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" ");
}
}
public int getMax(int[] arr)
{
int max = arr[0];;
for(int i=1;i<arr.length;i++)
{
if(max<=arr[i])
{
max = arr[i];
}
}
return max;
}
public void bubbleSort(int[] arr)
{
for(int i=0;i<arr.length-1;i++)
{
for(int j=0;j<arr.length-1-i;j++)
{
if(arr[j]>=arr[j+1])
{
arr[j] = arr[j]^arr[j+1];
arr[j+1]=arr[j]^arr[j+1];
arr[j]= arr[j+1]^arr[j];
}
}
}
}
public void selectSort(int[] arr )
{
for(int i=0;i<arr.length-1;i++)
{
int minIndex = i;
for(int j=i+1;j<arr.length;j++)
{
if(arr[j]<arr[minIndex])
{
minIndex = j;
}
}
if(minIndex!=i)
{
//如果minIndex不等于i,交换arr[minIndex]和arr[i]即最终将最小值放在第一个位置
int tmp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = tmp;
}
}
}
public int searchIndex(int[] arr,int item, int lowerIndex,int upperIndex)
{
int midIndex = (upperIndex+lowerIndex)/2;
if(item==arr[midIndex])
{
return midIndex+1;
}else if(item>arr[midIndex]){
return searchIndex(arr, item, midIndex,upperIndex);
}else{
return searchIndex(arr, item, lowerIndex,midIndex);
}
}
public int halfSearch(int[] arr,int item)
{
int upperIndex = arr.length-1;
int lowerIndex = 0;
int midIndex = (upperIndex+lowerIndex)/2;
while(true)
{
if(item>arr[midIndex])
{
lowerIndex = midIndex+1;
}else if(item<arr[midIndex]){
upperIndex = midIndex-1;
}else{
return midIndex+1;
}
if(upperIndex<lowerIndex){
return -1;
}
midIndex = (upperIndex+lowerIndex)/2;
}
}
}
相关文章
- 暂无相关文章
用户点评