1.选择排序:每一轮选择该轮第一个数和后面的每一个数进行比较,满足条件交换位置。
for(int i=0;i<arr.length-1;i++)
{
for(int j=i+1;j<arr.length;j++)
{
if(arr[i]>arr[j])
{
int tmep=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
2.冒泡排序:每一轮进行相邻的两个数进行比较,满足条件交换位置。
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])
{
int tmep=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
查找
基本查找:有数组中的第一个元素开始进行比较查找。
二分查找:
优点:查找速度快
确定:只能对有序的数据进行查找(限定已有的数组是小----大排序)
原理:将我们需要查找的数据和中间元素进行比较,
如果中需要查找的数据和中间元素相等,直接返回相应元素的下标
如果中需要查找的数据和中间元素大于,在中间元素的右边进行查找
如果中需要查找的数据和中间元素小于,在中间元素的左边进行查找
<span style="white-space:pre"> </span> int min=0;
int max=arr.length-1;
int mid=(min+max)/2;
while(arr[mid]!=value)
{
if(arr[mid]>value)
{
max=mid-1;
}
else
{
min=mid+1;
}
if(min>max)
{
return -1;
}
mid=(min+max)/2;
}
return mid;
数组的倒置
将数组的元素由中间隔开,进行元素的对调
<span style="white-space:pre"> </span>for(int i=0;i<arr.length/2;i++)
{
int temp=arr[i];
arr[i]=arr[arr.length-1-i]
arr[arr.length-1-i]=temp;
}