蛮力法在排序算法中的应用

对于一个排序问题,我们能想到的最简单的排序方法就是选择和冒泡

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)--选择排序、冒泡排序相关推荐

  1. 蛮力法在查找算法中的应用(JAVA)--顺序查找

    蛮力法在查找算法中的应用 对于查找算法来说,最简单的一个思路就是逐个匹配,直到找到目标元素 顺序查找: public class Main {public static void main(Strin ...

  2. Java 与排序算法(2):选择排序

    一.选择排序 选择排序(Selection Sort)是一种简单的排序算法,其基本思想是在待排序序列中选择最小(或最大)的元素,将其与序列的第一个元素交换位置,然后在剩余的元素中继续选择最小(或最大) ...

  3. 《排序算法系列一、简单选择排序》

    2019独角兽企业重金招聘Python工程师标准>>> 一.简单选择排序 描述:给定待排序序列A[ 0......n ] ,选择出第i小元素,并和A[i]交换,这就是一趟简单选择排序 ...

  4. 经典排序算法(6)——直接选择排序算法详解

    直接选择排序(Straight Select Sort)是一种典型的选择排序算法,通过不断选择序列中最大(小)的元素. 一.算法基本思想 (1)基本思想 直接选择排序的基本思想就是:不断从未排序队列中 ...

  5. 自己整理的排序算法之(1) 选择排序

    1 //选择排序 2 package sort; 3 4 public class SelectionSort { 5 public static void SelectionSort(double[ ...

  6. java排序算法大全_各种排序算法的分析及java实现

    排序一直以来都是让我很头疼的事,以前上<数据结构>打酱油去了,整个学期下来才勉强能写出个冒泡排序.由于要找工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究 ...

  7. 【Java进阶营】各种排序算法的深入分析及java实现

    排序一直以来都是让我很头疼的事,以前上<数据结构>打酱油去了,整个学期下来才勉强能写出个冒泡排序.由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间 ...

  8. java实现apriori算法_各种排序算法的分析及java实现(一)

    阅读本文约需要7分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了下用Navicat for Mysql导入.sql文件的 ...

  9. java选择排序解释_选择排序

    号内回复数据结构,获取整套算法视频 本文作者:skywang12345 欢迎点击下方阅读原文 选择排序介绍 选择排序(Selection sort)是一种简单直观的排序算法. 它的基本思想是:首先在未 ...

最新文章

  1. BZOJ4044 Luogu P4762 [CERC2014]Virus Synthesis (回文自动机、DP)
  2. jmeter 线程执行顺序_Jmeter-线程组执行顺序控制
  3. 1、代码中设置编码、编辑器中设置Python的编码
  4. java调用keras theano模型_使用Keras / Theano和LSTM进行多标签文本分类
  5. python开发--ModuleNotFoundError: No module named 'pyaudio'
  6. iPhone 12 mini被“阉割”到惨不忍睹,5G都没了
  7. VS2019中,一个解决方案拥有多个项目,如何快速选择启动项目
  8. python文字转语音哪个库好用
  9. 介绍一个浏览器被劫持后不能跳转到主页的处理方法
  10. 计算机底层02-计算机指令与指令集
  11. 网络安全工程师的入门学习的路径
  12. IT项目开发团队建设与管理总结(转)
  13. 【Python】窗口界面 按钮 文本框
  14. 同元车辆模型库——TA系列
  15. npm install时cb() never called!错误解决方法
  16. 截止2021年4月最全全国2800多个学校的图标logo打包,全国大学校徽logo
  17. java adb命令_从Java程序执行ADB命令
  18. 大学生体测成绩计算工具【npm包】
  19. php隐形字符#65279;
  20. 金杉号:目前城市里最容易做的小生意有哪些?

热门文章

  1. python怎么安装request_【python】如何安装requests
  2. php curl curlopt_getfields,PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
  3. 【升职加薪必备架构图】Springboot学习路线汇总
  4. 计算机系统军训口号,霸气的军训口号大全
  5. html提交表单使用python计算_教你使用Python实现新个税计算器
  6. c语言编程15,c语言编程15题.doc
  7. tecplot批量导出图片_批量导出Excel图片,用这招,半分钟干的活别人一整天完不成...
  8. MySQL 限制查询结果的记录数
  9. java项目添加jar包
  10. linux vps 运行exe文件夹,linux 64位下安装wine1.6 Windows模拟器(用来运行.exe文件) 编译安装32位wine...