java-冒泡排序、选择排序、二分查找
1、冒泡排序
 public void bubbleSort(int[] arr) {
   for (int i = 0; i < arr.length - 1; i++) {                //外循环只需要比较arr.length-1次就可以了
     for (int j = 0; j < arr.length - 1 - i; j++) {        //-1为了防止索引越界,-i为了提高效率
       if(arr[j] > arr[j+1]) {
         int temp = arr[j];
         arr[j] = arr[j + 1];
         arr[j+1] = temp;
       }
     }
   }
 }
2、选择排序
 public void selectSort(int[] arr) {
   for (int i = 0; i < arr.length - 1; i++) {                //只需要比较arr.length-1次
     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;
       }
     }
   }
 }
3、二分查找
 public 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;
 }
java-冒泡排序、选择排序、二分查找的更多相关文章
- 常见的排序算法(直接插入&选择排序&二分查找排序)
		
1.直接插入排序算法 源码: package com.DiYiZhang;/* 插入排序算法 * 如下进行的是插入,排序算法*/ public class InsertionSort { pub ...
 - 过三关 Java冒泡排序选择排序插入排序小练习
		
材料:猴子排序,按照身高来从小到大来排序. 第一关: 老猴子带领小猴子队伍按大小逐一比较,交换,开始高矮排列队伍.(冒泡排序) 第二关: 太慢了,给第一关增加难度,进行选择排序 第三关: 最后,尝试选 ...
 - java冒泡排序-选择排序-插入排序-使用API中文文档直接调用函数
		
import java.util.Arrays; public class ArrayDemo2_3 { public static void main(String []args) { //---- ...
 - JAVA:数组,排序,查找<4>
		
一.数组 1.一维数组 (1).数组的定义 数据类型 数组名[]=new 数据类型[大小] public class Demo1 { public static void main(String[] ...
 - 归并排序 & 计数排序 & 基数排序 & 冒泡排序 & 选择排序 ----> 内部排序性能比较
		
2.3 归并排序 接口定义: int merge(void* data, int esize, int lpos, int dpos, int rpos, int (*compare)(const v ...
 - UVA.10474 Where is the Marble ( 排序 二分查找 )
		
UVA.10474 Where is the Marble ( 排序 二分查找 ) 题意分析 大水题一道.排序好找到第一个目标数字的位置,返回其下标即可.暴力可过,强行写了一发BS,发现错误百出.应了 ...
 - 学习C#之旅 冒泡排序,选择排序,插入排序,希尔排序[资料收集]
		
关于冒泡排序,选择排序,插入排序,希尔排序[资料收集] 以下资料来源与网络 冒泡排序:从后到前(或者从前到后)相邻的两个两两进行比较,不满足要求就位置进行交换,一轮下来选择出一个最小(或最大)的放到 ...
 - C# 插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序
		
C# 插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序 以下列出了数据结构与算法的八种基本排序:插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序 ...
 - python算法(一)基本知识&冒泡排序&选择排序&插入排序
		
本节内容: 算法基本知识 冒泡排序 选择排序 插入排序 1. 算法基本知识 1.1 什么是算法? 算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为 ...
 - C语言实现 冒泡排序 选择排序 希尔排序
		
// 冒泡排序 // 选择排序 // 希尔排序 // 快速排序 // 递归排序 // 堆排序 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h& ...
 
随机推荐
- js代码之编程习惯
			
编程习惯: 异常处理 如果你没有使用异常处理的习惯,这可能是因为你并未真正的理解它的作用.当你正确使用异常处理之后,你会发现你的代码最显著的变化就是:少了很多的 if-else 语句 . 虽然在 JS ...
 - 神奇的口袋(dp)
			
有一个神奇的口袋,总的容积是40,用这个口袋可以变出一 些物品,这些物品的总体积必须是40. John现在有n(1≤n ≤ 20)个想要得到的物品,每个物品 的体积分别是a1,a2……an.John可 ...
 - 1-MAVEN 仓库
			
本地资源库 MAVEN的本地资源库是用来存储所有项目的依赖关系(插件和其他文件,这个文件被MAVEN 下载到本地文件中.) 可以通过修改MAVEN安装目录下conf/setting.xml配置 ...
 - ASP.Net MVC(3) 之Razor视图引擎的基础语法
			
Razor视图引擎的基础语法: 1.“_”开头的cshtml文档将不能在服务器上访问,和asp.net中的config文档差不多. 2.Razor语法以@开头,以@{}进行包裹. 3.语法使用: 注释 ...
 - vue-2-计算属性和观察者
			
<div id="example"> <p>Original message: "{{ message }}"</p> &l ...
 - java8新特性Lambda练习
			
练习内容: 1.实现案例 /** *使用lambda表达式定义Collections.sort() */ /** *使用lambda表达式自定义比对方式 */ @Test public void Te ...
 - Linux文件管理常用命令用法总结
			
1.touch change file timestamps. 命令用于修改文件或者目录的时间属性,包括存取时间和更改时间.若文件不存在,系统会建立一个新的文件.stat,ls -l 可以显示档案的时 ...
 - 第二节  java流程控制(循环结构)
			
1.for循环 for(初始化表达式;循环条件表达式;循环后的操作表达式){ 执行语句 } 2.while循环 while(条件表达式){ 执行语句 } while循环特点是只有条件满足才会执行我们 ...
 - DevExpress WinForms使用教程:Data Grid - Find Panel模式
			
[DevExpress WinForms v18.2下载] DevExpress WinForms用户都熟知,Data Grid是整个产品线的主要产品.在v18.2中添加了一些新的功能,例如之前教程中 ...
 - Java语法基础学习DaySeven
			
---恢复内容开始--- 一.包装类——Wrapper 1.定义:针对八种基本数据类型定义相应的引用类型——包装类(封装类) boolean——Boolean byte——Byte ...