首页 > 编程知识 正文

冒泡排序算法的时间复杂度是什么?,java冒泡排序从大到小

时间:2023-05-04 12:37:10 阅读:231411 作者:1406

首先我们定义一个冒泡排序接口实现其功能

 

接口主要有三个函数 

sort 进行排序

(关于sort中循环的次数

首先外层循环的i<n-1 ,n个数字需要n-1次循环

然后内层循环,i<n-i-1,首先减去每次已经排好的大数i个,接着在减去1,防止越界)

greater  判断前一个数是否比后一个大

exch 交换前后的顺序

代码如下:

package com.test12;public class Bubble { public static void sort(Comparable[] c) { for(int i=0;i<c.length-1;i++){ for(int j=0;j<c.length-i-1;j++){ if(greater(c[j],c[j+1])){ exch(c,j,j+1); } } } } public static boolean greater(Comparable c1, Comparable c2) { return c1.compareTo(c2) > 0; } public static void exch(Comparable[] c, int i, int j) { Comparable temp; temp = c[i]; c[i] = c[j]; c[j] = temp; }}

接着是我们的测试类

package com.test12;import java.util.Arrays;//冒泡排序public class TestBubble { public static void main(String[] args) { Integer[] arr={9,6,10,1,4,5}; System.out.println(Arrays.toString(arr)); Bubble.sort(arr); System.out.println(Arrays.toString(arr)); }}

最终结果如下:

冒泡排序的复杂度 

比较次数

(n-1)+(n-2)-(n-3)+....+2+1  

交换次数

(n-1)+(n-2)-(n-3)+....+2+1  

则时间复杂度为他们两个相加  最终有O(n^2)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。