排序
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>