首页 > 编程知识 正文

java冒泡排序函数,java冒泡排序例子

时间:2023-05-06 07:56:07 阅读:253318 作者:3494

冒泡排序主要思想是比较前后两个元素的大小如果a[i]>a[i+1]则交换两个元素的值

import java.util.Random;public class SortTest { static int a[] = new int[100000]; static{ for (int i = 0; i < 100000; i++) { Random random = new Random(100000); a[i] = random.nextInt(); } } public static void main(String[] args) { long t1 = System.currentTimeMillis(); SortTest.lldpy1(); System.out.println("排序1执行时间:"); System.out.println(System.currentTimeMillis()-t1); long t2 = System.currentTimeMillis(); SortTest.lldpy2(); System.out.println("排序2执行时间:"); System.out.println(System.currentTimeMillis()-t2); long t3 = System.currentTimeMillis(); SortTest.lldpy3(); System.out.println("排序3执行时间:"); System.out.println(System.currentTimeMillis()-t3); } /** * 冒泡排序1 * */ public static void lldpy1(){ for (int i = 0; i < a.length ; i++) { for (int j = i+1; j <a.length ; j++) { if (a[i]>a[j]){ int temp = a[i]; a[i] = a[j]; a[j] = temp; } }// System.out.println("第"+i+"次执行之后的数据");// for (int z = 0; z < a.length; z++) {// System.out.print(a[z]+" ");// }// System.out.println(""); } } /** * 冒泡排序2 */ public static void lldpy2(){ for (int i = 0; i < a.length-1; i++) { for (int j = 0; j <a.length-1 ; j++) { if(a[j]>a[j+1]){ int temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } }// System.out.println("第"+i+"次执行之后的数据");// for (int z = 0; z < a.length; z++) {// System.out.print(a[z]+" ");// }// System.out.println(""); } } /** * 冒泡排序3 * 思想:找到一个临界点,该临界点之后的元素全部都是有序的 * 推荐用这种,效率比较高 */ public static void lldpy3(){ int flag = a.length-1; while(flag > 0){ int num = flag; flag=0; // 每次初始化临界点 for (int i = 0; i < num; i++) { if(a[i]>a[i+1]){ int tmp = a[i]; a[i] = a[i+1]; a[i+1] = tmp; flag = i; } } } }}

 

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