黑马程序员 数组的基本操作代码
来源:互联网 发布:北京程序员工资水平 编辑:程序博客网 时间:2024/05/19 17:04
---------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
import java.util.Arrays;
/*Arrays.sort(数组)
Arrays.binarySearch(数组, key)
*/
class SortDemo {
public static void main(String[] args) {
int[] arr = {40, 25, 68, 58, 77, 13, 9, 28, 63};
sort3(arr);
System.out.println(Arrays.toString(arr));
int index = binarySearch(arr, 63);
System.out.println(index);
// int index = indexOf(arr, 9);
// System.out.println(index);
/*
String str = Arrays.toString(arr);
System.out.println(str);
sort1(arr);//排序了
str = Arrays.toString(arr);
System.out.println(str);
sort2(arr);
str = Arrays.toString(arr);
System.out.println(str);
*/
/*
sort3(arr);
System.out.println(Arrays.toString(arr));
*/
}
public static int binarySearch(int[] arr, int key) {
//默认的范围是整个数组
int begin = 0;//范围的开始
int end = arr.length-1;//范围的结束
int m; //范围的中心点
while(begin <= end) {
m = (begin + end) / 2;//找到当前范围的中心。
if(arr[m] == key) {//让key与中心点元素进行比较,如果相等,说明找到了。
return m;//返回m.
}
if(key > arr[m]) {//当key比大于中心点元素
begin = m + 1;//开始位置从中心点+1
} else {
end = m - 1;//当key比中心点元素小,那么结束位置就是中间点-1
}
}
return -1;
}
/*
*把参数在数组中的下标位置返回
*/
public static int indexOf(int[] arr, int key) {
// 遍历所有的元素
for(int i = 0; i < arr.length; i++) {
//当每个元素与key比较,如果相等,把当前元素的下标返回
if(arr[i] == key) {
return i;
}
}
//当循环结束,还没有返回。
//说明没有找到,那么返回-1,因为没有下标为负数,表示没有找到。
return -1;
}
/*
*冒泡
*外循环走一格,内循环走完。
*这时会有一最大值沉底!这说明一下躺就不用再给这个最大值排序。
*/
public static void sort3(int[] arr) {
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr.length-i-1; j++) {
if(arr[j] > arr[j+1]) {
swap(arr, j, j + 1);
}
}
}
}
public static void swap(int[] arr, int x, int y) {
int t = arr[x];
arr[x] = arr[y];
arr[y] = t;
}
//int[] arr = {9,8,2,3,5,6,1,4,7};
public static void sort2(int[] arr) {
for(int i = 0; i < arr.length - 1; i++) {
for(int j = i + 1; j < arr.length; j++) {
if(arr[i] > arr[j]) {
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
}
}
/*
*选择排序
*/
public static void sort1(int[] arr) {
/*
*锁定0 ~ 8
*当锁定0位置时,把0~9之间最大值的下标找到,然后让0与最大值下标交换
*当锁定1位置时,把1~9之间最大值的下标找到,然后让1与最大值下标交换
*/
for(int i = 0; i < arr.length - 1; i++) {
int maxIndex = maxIndex(arr, i);
//i 与 maxIndex交换
if(i != maxIndex) {//如果i本身就是最大值下标,那就没有必要去交换了。
swap(arr, i, maxIndex);
}
}
}
// 从指定的位置,即from开始,向后查找,找出最大的值的下标。
public static int maxIndex(int[] arr, int from) {
int maxIndex = from;//maxIndex表示下标
for(int i = from + 1; i < arr.length; i++) {
if(arr[maxIndex] < arr[i]) {
maxIndex = i;
}
}
return maxIndex;
}
/*
// 求参数数组中,最大的值的下标
public static int maxIndex(int[] arr) {
int maxIndex = 0;//maxIndex表示下标
for(int i = 1; i < arr.length; i++) {
if(arr[maxIndex] < arr[i]) {
maxIndex = i;
}
}
return maxIndex;
}
*/
// 求参数数组中的最大值
public static int max(int[] arr) {
int max = arr[0];
for(int i = 1; i < arr.length; i++) {
if(max < arr[i]) {
max = arr[i];
}
}
return max;
}
}
- 黑马程序员 数组的基本操作代码
- 黑马程序员:数组和数组的操作
- 黑马程序员---数据库的基本操作
- 黑马程序员------流操作的基本规律
- 黑马程序员 StringBuffer的一些基本操作
- 黑马程序员----流操作的基本规律
- 黑马程序员JAVA基础-数组以及一些基本操作
- 黑马程序员—Arrays工具类,数组的高级操作,基本数据类型包装类
- 黑马程序员_数组的操作
- 黑马程序员JAVA基础-数组的操作
- 黑马程序员---关于数组的操作
- 黑马程序员-数组的查找操作
- 黑马程序员--数组操作的常用方法
- 黑马程序员--基本IO操作
- 黑马程序员_四 【数组操作】【数组的简单应用】
- 黑马程序员@数组及对数组的操作
- 黑马程序员-C语言的几个基本数组
- 黑马程序员----集合框架的的基本操作
- memset研究
- 算数运算符i++;++i;
- poj 1459 Power Network 初级->图算法->最大流(基本算法:增广路)
- amqp0_9_1文档中定义的连接过程
- 如何评价一个网站的好坏
- 黑马程序员 数组的基本操作代码
- STL实用入门教程、COM实用入门教程
- hdu 3692 Shade of Hallelujah Mountain
- 2012写在同里
- Android 的OpenGL ES与EGL
- activity生命周期
- C++中的简单文件的I/O
- 黑马程序员 关于单例模式、懒汉式、饿汉式
- 安装sql 2005 express 后,并使用navicat远程连接数据库。