用接口写冒泡排序
本文最后更新于:2021年9月2日 晚上
用接口写冒泡排序:
package demo02.maopaoapi.Bubble;
public class Bubble {
/**
*对数组a中的元素进行排序
*/
public static void sort(Comparable[] a){
for (int i = a.length-1; i >0; i--) {
for (int j = 0; j < i; j++) {
//比较索引j和索引j+1处的值
if (greater(a[j],a[j+1])){
exch(a,j,j+1);
}
}
}
}
/**
* 比较v元素是否大于w元素
*/
private static boolean greater(Comparable v,Comparable w){
return v.compareTo(w)>0;
}
/**
* 数组元素i和j交换元素位置
*/
private static void exch(Comparable[] a,int i,int j){
Comparable temp;
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
package demo02.maopaoapi.TestBubble;
import demo02.maopaoapi.Bubble.Bubble;
import java.util.Arrays;
public class TestBubble {
public static void main(String[] args) {
Integer[] arr = {4,5,6,3,2,1};
Bubble.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
运行结果:
分析冒泡排序的性能:
冒泡排序使用了双层for循环,其中内层循环的循环体是真正完成排序的代码,所以,分析冒泡排序的时间复杂度,主要分析一下内层循环的执行次数即可。
本文作者: CodeAnime
本文链接: https://codeanime.cc/%E7%94%A8%E6%8E%A5%E5%8F%A3%E5%86%99%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!