蛮力法在排序算法中的应用(JAVA)--选择排序、冒泡排序
蛮力法在排序算法中的应用
对于一个排序问题,我们能想到的最简单的排序方法就是选择和冒泡
1、选择排序:时间复杂度O(n^2)
public class Main {public static void main(String[] args) {int[] a = {89, 45, 68, 90, 29, 34, 17};int min;for (int i = 0; i < a.length-1; i++) {min = i;for (int j = i+1; j < a.length; j++) {if (a[j] < a[min]) {min = j;}}int temp = a[i];a[i] = a[min];a[min] = temp;}for (int i = 0; i < a.length; i++) {System.out.print(a[i] + " ");}}
}
选择排序的思路就是如此,虽也有优化思路,例如每次迭代出最大值和最小值,放在开头和结尾。但是选择排序必然要编译算真整个数组,所以最好的优化结果也是O(n^2)。
2、冒泡排序:时间复杂度O(n^2)
public class Main {public static void main(String[] args) {int[] a = {89, 45, 68, 90, 29, 34, 17};int min;for (int i = 0; i < a.length-1; i++) {for (int j = 0; j < a.length-1-i; j++) {if (a[j+1] < a[j]) {int temp = a[j];a[j] = a[j+1];a[j+1] = temp;}}}for (int i = 0; i < a.length; i++) {System.out.print(a[i] + " ");}}
}
发现问题:对于冒泡排序我们都知道,即使已经排好顺序,循环还是会继续进行,即使只比较不交换。
优化思路:当判断到数组已经不再发生改变之后就终止循环。
当然,这就是蛮力法的一个应用,通过蛮力的解法来找到优化的思路
蛮力法在排序算法中的应用(JAVA)--选择排序、冒泡排序相关推荐
- 蛮力法在查找算法中的应用(JAVA)--顺序查找
蛮力法在查找算法中的应用 对于查找算法来说,最简单的一个思路就是逐个匹配,直到找到目标元素 顺序查找: public class Main {public static void main(Strin ...
- Java 与排序算法(2):选择排序
一.选择排序 选择排序(Selection Sort)是一种简单的排序算法,其基本思想是在待排序序列中选择最小(或最大)的元素,将其与序列的第一个元素交换位置,然后在剩余的元素中继续选择最小(或最大) ...
- 《排序算法系列一、简单选择排序》
2019独角兽企业重金招聘Python工程师标准>>> 一.简单选择排序 描述:给定待排序序列A[ 0......n ] ,选择出第i小元素,并和A[i]交换,这就是一趟简单选择排序 ...
- 经典排序算法(6)——直接选择排序算法详解
直接选择排序(Straight Select Sort)是一种典型的选择排序算法,通过不断选择序列中最大(小)的元素. 一.算法基本思想 (1)基本思想 直接选择排序的基本思想就是:不断从未排序队列中 ...
- 自己整理的排序算法之(1) 选择排序
1 //选择排序 2 package sort; 3 4 public class SelectionSort { 5 public static void SelectionSort(double[ ...
- java排序算法大全_各种排序算法的分析及java实现
排序一直以来都是让我很头疼的事,以前上<数据结构>打酱油去了,整个学期下来才勉强能写出个冒泡排序.由于要找工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究 ...
- 【Java进阶营】各种排序算法的深入分析及java实现
排序一直以来都是让我很头疼的事,以前上<数据结构>打酱油去了,整个学期下来才勉强能写出个冒泡排序.由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间 ...
- java实现apriori算法_各种排序算法的分析及java实现(一)
阅读本文约需要7分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了下用Navicat for Mysql导入.sql文件的 ...
- java选择排序解释_选择排序
号内回复数据结构,获取整套算法视频 本文作者:skywang12345 欢迎点击下方阅读原文 选择排序介绍 选择排序(Selection sort)是一种简单直观的排序算法. 它的基本思想是:首先在未 ...
最新文章
- BZOJ4044 Luogu P4762 [CERC2014]Virus Synthesis (回文自动机、DP)
- jmeter 线程执行顺序_Jmeter-线程组执行顺序控制
- 1、代码中设置编码、编辑器中设置Python的编码
- java调用keras theano模型_使用Keras / Theano和LSTM进行多标签文本分类
- python开发--ModuleNotFoundError: No module named 'pyaudio'
- iPhone 12 mini被“阉割”到惨不忍睹,5G都没了
- VS2019中,一个解决方案拥有多个项目,如何快速选择启动项目
- python文字转语音哪个库好用
- 介绍一个浏览器被劫持后不能跳转到主页的处理方法
- 计算机底层02-计算机指令与指令集
- 网络安全工程师的入门学习的路径
- IT项目开发团队建设与管理总结(转)
- 【Python】窗口界面 按钮 文本框
- 同元车辆模型库——TA系列
- npm install时cb() never called!错误解决方法
- 截止2021年4月最全全国2800多个学校的图标logo打包,全国大学校徽logo
- java adb命令_从Java程序执行ADB命令
- 大学生体测成绩计算工具【npm包】
- php隐形字符#65279;
- 金杉号:目前城市里最容易做的小生意有哪些?
热门文章
- python怎么安装request_【python】如何安装requests
- php curl curlopt_getfields,PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
- 【升职加薪必备架构图】Springboot学习路线汇总
- 计算机系统军训口号,霸气的军训口号大全
- html提交表单使用python计算_教你使用Python实现新个税计算器
- c语言编程15,c语言编程15题.doc
- tecplot批量导出图片_批量导出Excel图片,用这招,半分钟干的活别人一整天完不成...
- MySQL 限制查询结果的记录数
- java项目添加jar包
- linux vps 运行exe文件夹,linux 64位下安装wine1.6 Windows模拟器(用来运行.exe文件) 编译安装32位wine...