冒泡排序执行截图
冒泡排序执行(完整代码)
Bubble.java(冒泡排序)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
import java.util.Arrays;public class BubbleSort { private BubbleSort () {} public static <E extends Comparable<E>> void sort (E[] data ) { for (int i = 0 ; i + 1 < data .length; i ++){ for (int j = 0 ; j < data.length - i - 1 ; j ++ ) if (data[j].compareTo(data[j + 1 ])> 0 ) swap(data, j , j +1 ); } } private static <E> void swap (E[] arr, int i , int j ) { E t = arr[i]; arr[i] = arr[j]; arr[j] = t; } public static void main (String[] args) { int n = 100000 ; Integer[] arr1 = ArrayGenerator.generateRandomArray(n, n); Integer[] arr2 = Arrays.copyOf(arr1, arr1.length); sort(arr2); for (int i = 0 ; i < n ; i ++) System.out.println(arr2[i]); SortingHelper.sortTest("BubbleSort" ,arr1); } }
SortingHelper.java(辅助进行算法时间输出的)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
public class SortingHelper { private SortingHelper () {} public static <E extends Comparable<E>> boolean isSorted (E[] arr) { for (int i = 1 ; i< arr.length; i++) if (arr[i - 1 ].compareTo(arr[i]) > 0 ) return false ; return true ; } public static <E extends Comparable<E>> void sortTest (String sortname, E[] arr) { long startTime = System.nanoTime(); if (sortname.equals("SelectionSort" )) { SelectionSort.sort(arr); } else if (sortname.equals("InsertionSort" )) InsertionSort.sort(arr); else if (sortname.equals("InsertionSort2" )) InsertionSort.sort2(arr); else if (sortname.equals("MergeSort" )) MergeSort.sort(arr); else if (sortname.equals("MergeSort2" )) MergeSort.sort2(arr); else if (sortname.equals("MergeSort3" )) MergeSort.sort3(arr); else if (sortname.equals("MergeSort4" )) MergeSort.sort4(arr); else if (sortname.equals("MergeSortBU" )) MergeSort.sortBU(arr); else if (sortname.equals("QuickSort" )) QuickSort.sort(arr); else if (sortname.equals("QuickSort2" )) QuickSort.sort2ways(arr); else if (sortname.equals("QuickSort3" )) QuickSort.sort3ways(arr); else if (sortname.equals("HeapSort" )) HeapSort.sort(arr); else if (sortname.equals("BubbleSort" )) BubbleSort.sort(arr); long endTime = System.nanoTime(); double time = (endTime - startTime) / 1000000000.0 ; if (!SortingHelper.isSorted(arr)) throw new RuntimeException(sortname + "failed" ); System.out.println(String.format("%s , n = %d : %f s " , sortname, arr.length, time)); } }
ArrayGenerator.java(辅助测试用例的,生成随机的一组数组或有序的一组数组)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
import java.util.Random;public class ArrayGenerator { private ArrayGenerator () {} public static Integer[] generateOrderedArray(int n){ Integer[] arr = new Integer[n]; for (int i = 0 ; i < n ; i++) arr[i] = i; return arr; } public static Integer[] generateRandomArray(int n, int bound){ Integer[] arr = new Integer[n]; Random rnd = new Random(); for (int i = 0 ; i < n; i++) arr[i] = rnd.nextInt(bound); return arr; } }
我的个人博客
FROM:gylq.gitee Author:孤桜懶契
免责声明: 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
http://cn-sec.com/archives/729950.html
复制链接
复制链接
左青龙
微信扫一扫
右白虎
微信扫一扫
评论