From e50079795ddfae316a0794423da68a5a04ee97d9 Mon Sep 17 00:00:00 2001 From: liangjinglin Date: Wed, 15 Jan 2025 20:08:30 +0800 Subject: [PATCH] =?UTF-8?q?2025-01-15=201.=E6=97=B6=E9=97=B4=E5=A4=8D?= =?UTF-8?q?=E6=9D=82=E5=BA=A6=202.=E5=86=92=E6=B3=A1=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/SortAlgori/BubbleSort.java | 67 +++++++++++++++++++ .../java/SortAlgori/TimeComplex.java | 40 +++++++++++ 2 files changed, 107 insertions(+) create mode 100644 src/dataANDcalc/java/SortAlgori/BubbleSort.java create mode 100644 src/dataANDcalc/java/SortAlgori/TimeComplex.java diff --git a/src/dataANDcalc/java/SortAlgori/BubbleSort.java b/src/dataANDcalc/java/SortAlgori/BubbleSort.java new file mode 100644 index 0000000..5a2bc35 --- /dev/null +++ b/src/dataANDcalc/java/SortAlgori/BubbleSort.java @@ -0,0 +1,67 @@ +package SortAlgori; + +import java.util.Scanner; + +public class BubbleSort { + + private int[] arr; + + public BubbleSort(String str){ + String[] splitArrs = str.split(";"); + arr = new int[splitArrs.length]; + for (int i = 0; i < splitArrs.length; i++) { + arr[i] = Integer.parseInt(splitArrs[i]); + } + } + + public BubbleSort(int[] arr){ + this.arr = arr; + } + + + /** + * 可以进行一个优化,如果在某一趟排序中没发生过交换,就说明已经排好序了 + */ + public void sort(){ + boolean flag = false; + for (int i=0 ; iarr[j+1]){ + flag = true; + int temp = arr[j+1]; + arr[j+1] = arr[j]; + arr[j] = temp; + } + } + if(!flag){ + break; + }else { + flag = false; + } + } + } + + public void show(){ + for (int i = 0; i < arr.length; i++) { + System.out.print(arr[i] + " "); + } + System.out.println(); + } + + public static void main(String[] args) { + int[] arr = new int[10000]; + System.out.println("排序前的序列:"); + for(int i=0; i<10000; i++){ + arr[i] = (int)(Math.random()*1000000); + System.out.print(arr[i] + " "); + } + System.out.println(); + BubbleSort bubbleSort = new BubbleSort(arr); + long startTime = System.currentTimeMillis(); + bubbleSort.sort(); + long endTime = System.currentTimeMillis(); + System.out.println("排序后的序列:"); + bubbleSort.show(); + System.out.println("排序所花费的时间:" + (endTime - startTime) + "ms"); + } +} diff --git a/src/dataANDcalc/java/SortAlgori/TimeComplex.java b/src/dataANDcalc/java/SortAlgori/TimeComplex.java new file mode 100644 index 0000000..2dedba4 --- /dev/null +++ b/src/dataANDcalc/java/SortAlgori/TimeComplex.java @@ -0,0 +1,40 @@ +package SortAlgori; + +public class TimeComplex { + + private int constant(int n){ + return (1+n)*n/2; + } + + private int log2n(int n){ + int i = 1; + while (i < n){ + i = i * 2; + } + return i; + } + + private void linear(int n){ + for(int i = 0; i