Java常识7.0 数组实现冒泡排序选择排序和二分查找
Posted 梦子mengy7762
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java常识7.0 数组实现冒泡排序选择排序和二分查找相关的知识,希望对你有一定的参考价值。
1.0 冒泡排序原理
冒泡排序就是:轻的上浮,沉的下降。小的往前排,大的往后走。
原理:若一个N个元素的数组,两个相邻位置比较,如果前面的元素比后面的元素大就换位置。
每一次比较,都是相对最沉的到位。比较N-1次,每一次,上次一次沉到最下面放好的不用再比较,直到所有的到位为止。
2.0 冒泡排序代码实现
package edp.com.learn1;
public class Demo
public static void main(String[] args)
int[] arr = 24, 68, 84, 55, 15 ;
bubbleSort(arr);
public static void bubbleSort(int[] arr)
for (int i = 0; i < arr.length - 1; i++)
//外循环, N个数,只要比较N-1次就够了,最后一个数不需要比较。
for (int j = 0; j < arr.length-1-i; j++)
//-1为了防止索引越界
//内循环,
if (arr[j]>arr[j+1])
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1] = temp;
print(arr);
/**
* 打印数组的方法
*/
public static void print(int[] arr)
for (int i = 0; i < arr.length; i++)
System.out.print(arr[i]+" ");
System.out.println();
执行结果:
其中结果就是每一次排序的展示,可见1.0中描述的规律。对于新手小白想更轻松的学好Java提升,Java架构,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,扩列下我尉(同英):CGMX9880 【教程/工具/方法/解疑】
3.0 选择排序的原理
选择排序:用一个索引位置上的元素,依次与其他索引位置上的元素比较。晓得在前面,大的在后面。
每一次排序的结果,都是最小值到相对最前面的位置。比较N-1次,每一次,上次一次浮到最前面放好的不用再比较,直到所有的到位为止。
4.0 选择排序的代码实现
代码示范:
package edp.com.learn1;
public class Demo
public static void main(String[] args)
int[] arr = 24, 68, 84, 55, 15 ;
System.out.print("初始数组为:");
print(arr);
System.out.println("冒泡排序:");
bubbleSort(arr);
System.out.println("选择排序:");
selectSort(arr);
public static void bubbleSort(int[] arr)
for (int i = 0; i < arr.length - 1; i++)
// 外循环, N个数,只要比较N-1次就够了,最后一个数不需要比较。
for (int j = 0; j < arr.length - 1 - i; j++)
// -1为了防止索引越界
// 内循环,
if (arr[j] > arr[j + 1])
swap(arr, j, j + 1);
print(arr);
/**
** 选择排序
**/
public static void selectSort(int[] arr)
for (int i = 0; i < arr.length - 1; i++)
// 外循环, N个数,只要比较N-1次就够了,最后一次不需要比较。
for (int j = i + 1; j < arr.length; j++)
// 内循环,
if (arr[i] > arr[j])
swap(arr, i, j);
print(arr);
/**
** 打印数组的方法
*/
public static void print(int[] arr)
for (int i = 0; i < arr.length; i++)
System.out.print(arr[i] + " ");
System.out.println();
/**
** 换位操作方法 此方法只针对本类使用,不准备其他类使用,定义为私有
**/
private static void swap(int[] arr, int i, int j)
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
执行结果为:
5.0 二分查找的原理
二分查找的前提:数组元素有序。不停地折半查找直到找到该值。
比如 11 22 33 44 55 66 77 ,需要查找到22,那么二分查找,先找44,在找22,找到,返回索引。对于新手小白想更轻松的学好Java提升,Java架构,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,扩列下我尉(同英):CGMX9880 【教程/工具/方法/解疑】
画图演示如下:
6.0 二分查找的代码实现
代码演示如下:
package edp.com.learn1;
public class Demo
public static void main(String[] args)
int[] arr = 11, 22, 33, 44, 55, 66, 77 ;
System.out.println(getIndex(arr, 22));
System.out.println(getIndex(arr, 66));
System.out.println(getIndex(arr, 88));
public static int getIndex(int[] arr, int value)
int min = 0;
int max = arr.length - 1;
int mid = (min + max) / 2;
while (arr[mid] != value) //当中间值不等于要找的值,开始循环查找。
if (arr[mid] < value) //当中间值小于要查找的值。
min = mid + 1; //最小的索引改变。
else if (arr[mid] > value) //当中间值大于要找的值。
max = mid - 1; //最大的索引改变。
mid = (min + max) / 2; //无论最大还是最小改变中间索引都会随之改变。
if (min>max) //如果最小索引大于最大索引。没有查找的可能性。
return -1; //返回-1,表示查找失败。
return mid;
执行结果如下:
END
以上是关于Java常识7.0 数组实现冒泡排序选择排序和二分查找的主要内容,如果未能解决你的问题,请参考以下文章
Java学习 数组,查找算法,二分查找法,冒泡排序,选择排序,插入排序
java——类型转换,冒泡排序,选择排序,二分查找,数组的翻转