A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区


ava中有多种查找方法和排序方法,下面以冒泡排序,选择排序为例为大家介绍排序方法,以二分法查找,为大家演示一下查找的基本思路.
1.冒泡排序
原理:相邻元素两两比较,大的往后放。第一次完毕,最大值在最大索引处。
具体代码实例如下:
public class BubbleSortDemo {
public static void main(String[] args) {
//定义变量,记录要被排序的数组
int[] arr = {13,456,79,7,654,33,45};
//外层循环代表轮数,代表正在比较第几大的数
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 temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr + " ");
}
}
}
2.选择排序
原理: 0索引元素开始,依次和后面的所有元素比较,小的往0索引处放。第一次完毕后,最小值在最小索引处。
具体代码实例如下:
public class SelectSortDemo {
public static void main(String[] args) {
//定义变量,记录要被排序的数组
int[] arr = {13,456,79,7,654,33,45};
//外层循环代表轮数,代表正在比较第几小的数
for(int i=0; i
//比较这一个数出来,需要比较多少次
for(int j=i+1; j
//如果按照从小到大的顺序,则需要前边的数比后边的数小
if(arr>arr[j]){
int temp = arr;
arr = arr[j];
arr[j] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr + " ");
}
}
}
3.二分法查找
前提:数组必须是排序的。
原理:每次都从中间开始找,如果比中间数据小,就在左边找, 如果比中间数据大,就在右边找,如果相 等,就返回中间的索引值。
具体代码实例如下:
public static int getIndex(int[] arr,int value) {
int start = 0;
int end = arr.length-1;
int mid = (start+end)/2;
while(arr[mid]!=value){
if(value>arr[mid]) {
start = mid + 1;
}else if(value
end = mid - 1;
}
if(start > end) {
return -1;
}
mid = (start+end)/2;
}
return mid;
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马