跳到正文

【数据结构与算法】冒泡排序法

1.算法原理 400 2.算法实现源码: package basic_class_01; import java.util.Arrays; public class Code_00_BubbleSort { public static void bubbleSort(int arr) { if (arr == null || arr.length < 2) { return; } for (int e = arr.length - 1; e > 0; e--) { for (int i = 0; i < e; i++) { if (arr > arr) { swap(arr, i, i + 1); } } } } public static void swap(int arr, int i, int j) { arr = arr ^ arr; arr = arr ^ arr; arr = arr ^ arr; } // for test public static void comparator(int arr) { Arrays.sort(arr); } // for test public static int generateRandomArray(int maxSize, int maxValue) { int arr = new int; for (int i = 0; i < arr.length; i++) { arr = (int) ((maxValue + 1) * Math.random()) - (int) (maxValue * Math.random()); } return arr; } // for test public static int copyArray(int arr) { if (arr == null) { return null; } int res = new int; for (int i = 0; i < arr.length; i++) { res = arr; } return res; } // for test public static boolean isEqual(int arr1, int arr2) { if ((arr1 == null && arr2 != null) || (arr1 != null && arr2 == null)) { return false; } if (arr1 == null && arr2 == null) { return true; } if (arr1.length != arr2.length) { return false; } for (int i = 0; i < arr1.length; i++) { if (arr1 != arr2) { return false; } } return true; } // for test public static void printArray(int arr) { if (arr == null) { return; } for (int i = 0; i < arr.length; i++) { System.out.print(arr + " "); } System.out.println(); } // for test public static void main(String args) { int testTime = 500000; int maxSize = 100; int maxValue = 100; boolean succeed = true; for (int i = 0; i < testTime; i++) { int arr1 = generateRandomArray(maxSize, maxValue); int arr2 = copyArray(arr1); bubbleSort(arr1); comparator(arr2); if (!isEqual(arr1, arr2)) { succeed = false; break; } } System.out.println(succeed ? "Nice!" : "Fucking fucked!"); int arr = generateRandomArray(maxSize, maxValue); printArray(arr); bubbleSort(arr); printArray(arr); } }package basic_class_01; import java.util.Arrays; public class Code_00_BubbleSort { public static void bubbleSort(int arr) { if (arr == null || arr.length < 2) { return; } for (int e = arr.length - 1; e > 0; e--) { for (int i = 0; i < e; i++) { if (arr > arr) { swap(arr, i, i + 1); } } } } public static void swap(int arr, int i, int j) { arr = arr ^ arr; arr = arr ^ arr; arr = arr ^ arr; } // for test public static void comparator(int arr) { Arrays.sort(arr); } // for test public static int generateRandomArray(int maxSize, int maxValue) { int arr = new int; for (int i = 0; i < arr.length; i++) { arr = (int) ((maxValue + 1) * Math.random()) - (int) (maxValue * Math.random()); } return arr; } // for test public static int copyArray(int arr) { if (arr == null) { return null; } int res = new int; for (int i = 0; i < arr.length; i++) { res = arr; } return res; } // for test public static boolean isEqual(int arr1, int arr2) { if ((arr1 == null && arr2 != null) || (arr1 != null && arr2 == null)) { return false; } if (arr1 == null && arr2 == null) { return true; } if (arr1.length != arr2.length) { return false; } for (int i = 0; i < arr1.length; i++) { if (arr1 != arr2) { return false; } } return true; } // for test public static void printArray(int arr) { if (arr == null) { return; } for (int i = 0; i < arr.length; i++) { System.out.print(arr + " "); } System.out.println(); } // for test public static void main(String args) { int testTime = 500000; int maxSize = 100; int maxValue = 100; boolean succeed = true; for (int i = 0; i < testTime; i++) { int arr1 = generateRandomArray(maxSize, maxValue); int arr2 = copyArray(arr1); bubbleSort(arr1); comparator(arr2); if (!isEqual(arr1, arr2)) { succeed = false; break; } } System.out.println(succeed ? "Nice!" : "Fucking fucked!"); int arr = generateRandomArray(maxSize, maxValue); printArray(arr); bubbleSort(arr); printArray(arr); } }

评论

填写昵称与邮箱即可评论,无需登录。

推荐阅读