java 选择排序、冒泡排序、折半查找
public class SortAndSelectDemo{
public static void main(String[] args){
int[] arr = {3, 5, 17, 2, 11, 13, 19, 7, 23};
//bubbleSort(arr);
selectSort(arr);
printArr(arr);
int searchIndex = halfSearch(arr,6);
System.out.println(searchIndex);
}
//选择排序
public static void selectSort(int[] arr){
for(int i = 0; i < arr.length-1; i++){
for(int j = i+1; j < arr.length-1; j++){
if(arr[i] > arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
//冒泡排序
//外循环:对比n-1次,内循环:n-1次随i递减
public static void bubbleSort(int[] arr){
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;
}
}
}
}
//折半查找
public static int halfSearch(int[] arr, int searchNum){
int minIndex = 0;
int maxIndex = arr.length;
int midIndex = 0;
while(minIndex < maxIndex){
midIndex = (minIndex + maxIndex)/2;
if(arr[midIndex] > searchNum){
maxIndex = midIndex-1;
}else if(arr[midIndex] < searchNum){
minIndex = midIndex + 1;
}else{
return midIndex;
}
}
return -1;
}
public static void printArr(int[] arr){
System.out.print("[");
for(int i = 0;i < arr.length; i++){
if(i == arr.length-1){
System.out.println(arr[i] + "]");
}else{
System.out.print(arr[i] + "\t");
}
}
}
}
选择排序:

冒泡排序:

java 选择排序、冒泡排序、折半查找的更多相关文章
- 选择排序&冒泡排序&折半查找
//选择排序 void test2(int a[],int len){ //每次找出一个最小值,最小值依次与原数组交换位置,通过下标来完成交换,最小值下标每次都在变,变量存储 // 假如第一个是 ...
- Java学习笔记day07_琐碎知识_水仙花数_ASCII码_冒泡排序_简单选择排序_折半查找
琐碎知识: 水仙花数, ASCII码, 冒泡排序, 简单选择排序, 折半查找 1.水仙花数 每位数的平方的和等于本身. 如100到999之间的水仙花数满足: 个位的平方+十位的平方+百位的平方 = 本 ...
- java基础-数组的折半查找原理
java基础-数组的折半查找原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让你写一个数组的查找功能,需求如下:在一个数组中,找一个元素,是否存在于数组中, 如果存在就返回 ...
- Java——选择、冒泡排序、折半查找
//选择排序对数据进行升序排序 public static void selectSortArray(int[] arr){ for(int i = 0; i<arr.length-1;i++) ...
- C语言之冒泡排序、选择排序、折半查询、进制查表
菜单导航 1.冒泡排序 2.选择排序 3.折半查询 4.进制查表(十进制转二进制.八进制.十六进制) 一.冒泡排序 //1.冒泡排序 /** 一组无序数字,进行从小到大排序 冒泡排序的过程:就是每个循 ...
- Java基础【冒泡、选择排序、二分查找】
冒泡排序的思路就是前一个和后一个进行比较,如果大的就交换位置 大的数字后浮 如 12 8 5 31 第一轮 8 5 12 31 第二轮 5 8 ...
- java 选择排序与冒泡排序
选择排序与冒泡排序的特点与区别 ++++++++++++++++++++++++++++++++++++++++++++++ 选择排序 这一种简单的排序方法,它的基本思想是:R[n]第一次从R[0]~ ...
- Java ——数组 选择排序 冒泡排序
本节重点思维导图 数组 public static void main(String[] args) { int a ; a=3; int[] b; b = new int[3];//强制开辟内存空间 ...
- [Java]数组排序-选择排序 冒泡排序 插入排序
1 选择排序 原理:a 将数组中的每个元素,与第一个元素比较 如果这个元素小于第一个元素, 就将这个 两个元素交换. b 每轮使用a的规则, 可以选择出 ...
随机推荐
- Install elasticsearch-head: – for Elasticsearch 5.x
Running as a plugin of Elasticsearch Install elasticsearch-head:– for Elasticsearch 5.x:site plugins ...
- [js] 处理字符串换行造成的json解析失败
需求:从数据库某个字段取出字符串出来,转为json,结果发现报错为 解析失败,发现是因为取出的字符串换行导致,现在需要将字符串里面的换行替换为'',使字符串可依成功解析成json对象. 技术:依靠re ...
- Java Socket 死循环while如何判断客户端断开
多线程的服务器程序 线程中等待客户端的消息 我的代码能实现服务器与客户端的通信 问题是: 当客户端中断或退出 以上代码却不能判断Socket中断 跳不出while的无限循环 解决方法: ...
- Java面试题考点全面总结
我通过两个月的复习拿到了阿里巴巴的 offer,有一些运气,也有一些心得,借着跳槽季来临特此分享出来. 简单梳理一下我的复习思路,同时也希望和大家一起交流讨论,一起学习,如果不对之处欢迎指正一起学习. ...
- duilib进阶教程 -- 在duilib中使用MFC (2)
好人做到底,送佛送到西.虽然上一篇教程已经说得很详细了,但Alberl还是再举一个例子.上一篇教程的主窗口是MFC的,所以这篇教程把主窗口换成duilib的~O(∩_∩)O~ 1.我们利用<20 ...
- vue跨域代理配置
实际:http://a.com/b.php 代理:http://localhost/b.php 配置config/index.js proxyTable: { '/api': { target:'ht ...
- [PYTHON-TSNE]可视化Word Vector
需要的几个文件: 1.wordList.txt,即你要转化成vector的word list: spring maven junit ant swing xml jre jdk jbutton jpa ...
- Qt编写调试日志输出类带网络转发(开源)
用qt开发商业程序已经九年了,陆陆续续开发过至少几十个程序,除了一些算不算项目的小工具外,大部分的程序都需要有个日志的输出功能,希望可以将程序的运行状态存储到文本文件或者数据库或者做其他处理等,qt对 ...
- 九、K3 WISE 开发插件《工业单据老单序时薄插件工具栏按钮开发实例》
=============================== 目录: 1.添加工具栏按钮 2.查询被添加工具栏按钮的业务单据的FMenuID和FID 3.添加工具栏按钮和业务单据的映射关系 4.工具 ...
- 八、K3 WISE 开发插件《工业单据老单插件中获取登陆用户名》
备注:如果是BOS新单,都有获取用户名的方法.在单据有m_BillInterface.K3Lib.User.UserId,在序时薄有m_ListInterface.K3Lib.User.UserID ...