java数组中常见的排序和查找

时间:2022-08-28 00:16:40

排序

1、选择排序。

从第一个元素开始获取,和后面每一个数据进行比较,将较小(或者较大)的数和第一个元素进行交换,然后再获取第二个元素再和其后面的每一个元素进行比较。

for(int i=0;i<array.length;i++){
for(int j=i+i;j<array.length;j++){
if(array[i]>array[j]){        int temp=array[i];        array[i]=array[j];        array[j]=array[i];
}    }}

2、冒泡排序


相邻的两个元素进行比较,将比较大的(或者比较小的)放在后一个元素
<pre name="code" class="java"><span style="font-size:24px;">for(int i=0;i<array.length;i++){
for(int j=0;j<array.length-1-i;j++){
if(array[j]>array[j+1])</span>
<span style="font-size:24px;"><span style="white-space:pre"></span>{            int temp = a[j];            a[j]=a[j+1];            a[j+1]=temp;        }    }}</span>


 

查找 

 、顺序查找 

遍历数组每一个元素,返回找到数值的数值下标,没有返回则返回-1

<span style="font-size:24px;">for(int i=0;i<array.length;i++){
if(array[i]==index){
<span style="white-space:pre"></span>return i;
}
}
return -1;</span>


二、二分查找

二分查找的前提是改数值是已经排好序的

<span style="font-size:24px;">int left=0,right=array.length,mid=0;
while(left<=right){
mid=(left+right)/2;
if(index>array[mid]){
left=mid+1;
}else if(index<array[mid]){
right = mid-1;
}else{
return mid;//找到该值
}
}
return -1;//循环结束没有找到则返回-1</span>