Java工具類 排序

2021-07-31 09:42:00 字數 1696 閱讀 8553

最近想著封裝一些常用的工具類。

先拿最常用最簡單的陣列排序來練練手。

日常操作中常見的排序方法有:氣泡排序、快速排序、選擇排序、插入排序、希爾排序、堆排序、基數排序、歸併排序等。

數字排序演算法通常用來作為演算法入門課程的基本內容,在實際應用(尤其是普通商業軟體)中使用的頻率較低,但是通過排序演算法的實現,可以深入了解計算機語言的特點,可以以此作為學習各種程式語言的基礎。

氣泡排序(bubble sort)是一種簡單的排序演算法。它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢「浮」到數列的頂端,故名。

氣泡排序(bubblesort)的基本概念是:依次比較相鄰的兩個數,將這兩個數按序排好。

示例:將陣列用氣泡排序降序排列。

int a=;

for(int i=0;i

寫乙個封裝類,涵蓋公升序和降序:

/*** 氣泡排序

* @param arr 待排序的陣列

* @param asc 是否按公升序排序

* @return 排序後的陣列

*/public static int bubblesort(int arr,boolean asc)

}} return arr;

}

當然,也可以寫2個小方法來區分公升序和降序:

/**

* 氣泡排序,公升序

* @param arr 待排序的陣列

* @return 排序後的陣列

*/public static int bubblesortasc(int arr)

/**

* 氣泡排序,降序

* @param arr 待排序的陣列

* @return 排序後的陣列

*/public static int bubblesortdesc(int arr)

基本思想是每次從待排資料中選擇第n小的資料放到排序列表的第n個位置。

(假設資料放在乙個陣列a中,且陣列的長度是n)

1:從a[0]-a[n-1]中選出最小的資料,然後與a[0]交換位置

2:從a[1]-a[n-1]中選出最小的資料,然後與a[1]交換位置(第1步結束後a[0]就是n個數的最小值)

3:從a[2]-a[n-1]中選出最小的資料,然後與a[2]交換位置(第2步結束後a[1]就是n-1個數的最小值)

以此類推,n-1次排序後,待排資料就已經按照從小到大的順序排列了。

封裝類:

/**

* 選擇排序

* @param arr 待排序的陣列

* @param asc 是否按公升序排序

* @return 排序後的陣列

*/public static int selectsort(int arr,boolean asc)

選擇降序:

/**

* 選擇排序,降序

* @param arr 待排序的陣列

* @return 排序後的陣列

*/public static int selectsortdesc(int arr)



Java工具類 Java檔案工具類

public class fileutils 讀取檔案並作為byte返回 param file 目標檔案 return throws ioexception public static byte readfileasbytes file file throws ioexception 讀取檔案並作為...

Java反射工具類

反射工具類 public class reflectionutil return field.get object catch exception e return null 通過反射獲取靜態成員的值 param classvar param fieldname return 靜態成員的值 supp...

java分頁工具類

物件 分頁請求和響應實體 to author administrator 物件業務層封裝 提供setter 計算的資料 可以直接提供getter 計算出來 public class paginationimplements serializable public void setsize int s...