700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 蛮力法在排序算法中的应用(JAVA)--选择排序 冒泡排序

蛮力法在排序算法中的应用(JAVA)--选择排序 冒泡排序

时间:2021-11-03 12:44:43

相关推荐

蛮力法在排序算法中的应用(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] + " ");}}}

发现问题:对于冒泡排序我们都知道,即使已经排好顺序,循环还是会继续进行,即使只比较不交换。

优化思路:当判断到数组已经不再发生改变之后就终止循环。

当然,这就是蛮力法的一个应用,通过蛮力的解法来找到优化的思路

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。