Java基础冒泡选择排序二分查找
Posted 梅花GG
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础冒泡选择排序二分查找相关的知识,希望对你有一定的参考价值。
冒泡排序的思路就是前一个和后一个进行比较,如果大的就交换位置 大的数字后浮
如 12 8 5 31
第一轮 8 5 12 31
第二轮 5 8 12 31
........
代码如下
package com.zuoyan.sort; /** * 冒泡排序 * @author Administrator * */ public class BubbloSortDemo { public static void main(String[] args) { int []arr = {10,8,20,3,6,22,16}; for(int i =0 ;i< arr.length;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 : arr) { System.out.println(i); } } }
2.选择排序
思路就是 将这个数组从头开始遍历
从第一个开始 与他后面的每个数字进行比较,如果遇见比他小的 这个两个数字进行交换位置,
第二个也是,也是从他后面的进行比较,不用比较第一个了,因为第一个已经是整个数组中的最小数字了
.......
代码如下
package com.zuoyan.sort; /** * 选择排序 * @author Administrator * */ public class SelectSort { public static void main(String[] args) { int [] arr={1,12,11,8,13,89,45,22,61}; for(int i=0 ;i<arr.length;i++) { for(int j =i+1;j<arr.length;j++) { if(arr[i]>arr[j]) { int temp =arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } for (int i : arr) { System.out.println(i); } } }
3.二分查找
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查找的表为有序表。二分查找的目的是查找出元素的索引,有个前提是数组元素必须是有序
package com.zuoyan.sort; /** * 二分查找算法 * @author Administrator * */ public class BinarySearch { public static void main(String[] args) { int[] arr = {11,22,33,44,55,66,77}; int num = 51; int index = -1; int min = 0; int max = arr.length-1; int mid = (min+max)/2; while(true) { if(arr[mid] == num) { index = mid; break; } if(arr[mid]<num) { min = mid +1; mid = (min+max)/2; } if(arr[mid]>num) { max = mid-1; mid =(max + min)/2; } if(min>max) { break; } } System.out.println(index); } }
以上是关于Java基础冒泡选择排序二分查找的主要内容,如果未能解决你的问题,请参考以下文章
Java八股文面试题 基础篇 -- 二分查找算法冒泡排序选择排序插入排序希尔排序快速排序
01. Java的经典排序--选择排序--冒泡排序--折半查找(二分查找)