目录

  • 排序算法:冒泡排序
  • 排序算法:快速排序
  • 数组的复制、反转、查询(线性查找、二分查找)

排序算法:冒泡排序

public static void main(String[] args){int[] arr = new int[]{43,32,76,-98,0,64,32,15,108,-21,59};//冒泡排序for(int i = 0;i< arr.length - 1;i++){for(int j = 0;j< arr.length - 1 -i;j++){if(args[j] > arr[j+1]){int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}for(int i = 0;i< arr.length;i++){System.out.print(arr[i]+"\t");}
}

排序算法:快速排序

通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。

/*** 快速排序* 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,* 则分别对这两部分继续进行排序,直到整个序列有序。*/
public class QuickSort {private static void swap(int[] data, int i, int j) {int temp = data[i];data[i] = data[j];data[j] = temp;}private static void subSort(int[] data, int start, int end) {if (start < end) {int base = data[start];int low = start;int high = end + 1;while (true) {while (low < end && data[++low] - base <= 0);while (high > start && data[--high] - base >= 0);if (low < high) {swap(data, low, high);} else {break;}}swap(data, start, high);subSort(data, start, high - 1);//递归调用subSort(data, high + 1, end);}}public static void quickSort(int[] data){subSort(data,0,data.length-1);}public static void main(String[] args) {int[] data = { 9, -16, 30, 23, -30, -49, 25, 21, 30 };System.out.println("排序之前:\n" + java.util.Arrays.toString(data));quickSort(data);System.out.println("排序之后:\n" + java.util.Arrays.toString(data));}
}

数组的复制、反转、查询(线性查找、二分查找)

public static void main(String[] args){String arr = new String[]{"AA","BB","JJ","GG","MM","DD"};//数组的复制(区别于数组变量的赋值:arr1 = arr)String[] arr1 = new String[arr.length];for(int i = 0;i<arr1.length;i++){arr1[i] = arr[i];}//数组的反转//方式一:for(int i =0;i < arr.length / 2;i++){String temp =arr[i];arr[i] = arr[arr.length - i -1];arr[arr.length - i -1] = temp;}//方式二:for(int i =0;j = arr.length -1;i<j;i++,j--){String temp =arr[i];arr[i] = arr[j];arr[j] = temp;}//遍历for(int i = 0;i < arr.length;i++){System.out.print(arr[i]+"\t");}System.out.println();//查找(搜索)//线性查找//思路:通过遍历的方式,一个一个的数据进行比较、查找。//具普遍适用性String dest = "BB";boolean isFlag = true;for(int i=0;i<arr.length;i++){if(dest.equels(arr[i])){System.out.println("找到指定的元素,位置为:"+i);isFlag = false;break;}}if(isFlag){System.out.println("很遗憾没有找到哦!");}//二分法查找//前提,所有查询的数组必须有序//每次比较中间值,折半的方式检索int arr2 = new int[]{-98,-34,2,34,66,79,106,214,333};int dest1 = -34;int head = 0;//初始化的首索引int end = arr2.length -1;//初始化末索引boolean isFlag1 = true;while(head < end){int middle = (head + end)/2;if(dest1 == arr2[middle]){System.out.println("找到指定的元素,位置为:"+middle);isFlag1 = false;break;}else if(arr2[middle] > dest1){end = middle - 1;}else{head = middle + 1;}}if(isFlag){System.out.println("很遗憾没有找到哦!");}
}

好了,我亲爱的读者朋友,以上就是本文的全部内容了!!!

觉得有点用记得给我点赞哦!

通过坚持不懈地学习,持续不断地输出,你的编程基本功算得上是突飞猛进。

为了帮助更多的程序员,专注于分享有趣的 Java 技术编程和有益的程序人生。一开始,阅读量寥寥无几,关注人数更是少得可怜。但随自己的不断努力,阅读量和关注人都在猛烈攀升。

绝对不容错过,期待与你的不期而遇。

冒泡排序 | 快速排序 | 线性查找 | 二分查找等相关推荐

  1. 数据结构与算法(8-2)有序表查找(折半查找(二分查找)、插值查找)

    目录 一.折半查找(二分查找) 二.插值查找 总代码 一.折半查找(二分查找) 原理:一次次折半,不断向着查找值的位置靠近 . 适用场景:有序(必须) 流程:开始时,min标志首,max标志尾,med ...

  2. 【Golang第6章:排序和查找】golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例

    介绍 这个是在B站上看边看视频边做的笔记,这一章是GO语言的排序和查找 有golang怎么排序,golang的顺序查找和二分查找,go语言中顺序查找二分查找介绍和案例,具体请看[文章目录] 配套视频自 ...

  3. Python查找-二分查找

    Python查找-二分查找 二分查找 折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务. 它的基本思想是,将n个元素分成个数大致相 ...

  4. C语言之折半查找(二分查找)

    一.什么是折半查找? 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表.首先,假设表中 ...

  5. Java实现折半查找(二分查找)的递归和非递归算法

    Java二分查找实现,欢迎大家提出交流意见. /** *名称:BinarySearch *功能:实现了折半查找(二分查找)的递归和非递归算法. *说明: *     1.要求所查找的数组已有序,并且其 ...

  6. 第三次学JAVA再学不好就吃翔(part59)--冒泡排序选择排序以及二分查找

    学习笔记,仅供参考 文章目录 数组高级冒泡排序 数组高级选择排序 二分查找法 数组高级冒泡排序 冒泡排序原理:设数组中有n个元素,从第一个元素开始,对相邻元素进行两两比较,两个元素中大的往后放,第一次 ...

  7. 冒泡排序、递归、二分查找

    一.冒泡排序 给出一个纯数字列表. 请对列表进行排序. 思路: 1.完成a和b的数据交换. 例如, a = 10, b = 24 交换之后, a = 24, b = 10 2.循环列表. 判断a[i] ...

  8. Java数据结构与算法——线性查找 二分查找 插值查找

    1.线性查找 有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称[顺序查找] 要求: 如果找到了,就提示找到,并给出下标值. package com.szh. ...

  9. 4_冒泡排序,一次二分查找,求位数

    冒泡排序 当前项跟后一项比较大小 小的在前大的在后互换位置 重复执行到所有数据都按照从小到大的顺序排序 int abc[10]={6,8,3,9,1,10,7,2,4,5}; for(int i=0; ...

最新文章

  1. docker启动远程管理接口
  2. java文件file字符集_获取文件字符集(或文件编码) 的工具类
  3. 28Python正则表达式、正则表达式对象、正则表达式修饰符、表达式模板、表达式实例、match函数、search方法、检索和替换、repl、compile、findall等
  4. Struts2之一个Action包含多个控制处理逻辑
  5. 数据分析与挖掘实战-基于水色图像的水质评价
  6. 开发者必看!你想知道的迁移之道都在这里了
  7. java json 修改字段_我们如何使用Java中的Jackson来更改JSON中的字段名称?
  8. cassandra写数据CommitLog
  9. @IT老司机 云服务、BI大数据、协同办公等五大技术选型研讨会,震撼来袭!
  10. c++_string与double/int互转
  11. 2020年最全Python常用爬虫代码就这些了(附爬虫教程)
  12. hashmap的底层
  13. 学中式烹调10天笔记(备用)
  14. python中判断生肖和星座哪个准_星座准还是属相
  15. python中label组件参数_【Python64-tkinter_label组件】
  16. 5x2cv配对t检验(5x2cv paired t test)
  17. 上传Android应用到腾讯应用宝,乐固加固应用使用
  18. 米的换算单位和公式_一米等于多少分米(常见的长度单位换算公式方法)
  19. C语言制作通讯录(新手练习推荐)
  20. 推广中文域名的重要性和建议

热门文章

  1. 洗衣机异响如何维修?洗衣机声音很响怎么维修?洗衣机异响如何处理?
  2. 用innobackupex做全量备份
  3. 如何获取中国电信、网通、铁通的最新ip地址段
  4. NAN、QNAN、 SNAN、 IND、 INF
  5. 分布式论文精读1:MapReduce
  6. 【C#】封装的复数运算类库及拓展到复数域的Math类
  7. 中国商务电话服务行业市场供需与战略研究报告
  8. 字体图标库-如何使用-icomoon
  9. 淘宝电商api接口获取商品类目信息
  10. 只网签没备案 房管局能查到吗_如何查询已网签且未备案的房产