Java學習筆記之陣列排序演算法

2021-06-29 09:05:15 字數 1143 閱讀 8414

寫在前面:

程式設計的本質就是對資料(資訊以資料的形式而存在)的處理,實際程式設計中不得不處理大量資料,因此實際動手程式設計之前必須先分析處理這些資料,處理資料之間存在的關係。資料元素之間存在的關聯關係被稱為資料的邏輯結構。

邏輯結構大致可分為4種:

1、集合:資料元素之間只有「同屬乙個集合」的關係。

2、線性關係:資料元素之間存在乙個對乙個的關係。

3、樹形結構:資料元素之間存在著乙個對多個的關係。

4、圖形結構或網狀結構:資料元素之間存在著多個對多個的關係。

而同一種邏輯結構,在計算機底層通常有兩種物理儲存結構:

1、順序儲存結構——一堆陣列。

2、非順序儲存結構——鍊錶、雜湊結構。

演算法的設計就取決於以上邏輯結構,演算法的實現依賴於資料的儲存結構。

排序演算法分類:內部排序和外部排序。

內部排序:不需要借助外部儲存器,整個排序過程都在記憶體中完成。

外部排序:資料量非常大,因此計算機無法把資料放在記憶體中完成排序,需要借助外部儲存器如硬碟來完成排序過程,常見的主要是過路歸併排序。外部排序可以認為是由多次內部排序完成。

常見的內部排序:

1、選擇排序:直接選擇排序、堆排序。

2、交換排序:氣泡排序、快速排序。

3、插入排序:直接插入排序、shell排序、折半插入排序。

4、歸併排序

5、桶式排序

6、基數排序

直接選擇排序的基本過程:

1、在一組陣列元素array[i~n]中選擇乙個最小元素i。

2、若它不是這組元素中的第乙個元素,則將它與這組元素中的第乙個元素對調。

3、找到最小元素,在其餘陣列元素中重複1、2步直到剩餘乙個元素。

int array = ;

system.out.println("排序前" + "\n" + arrays.tostring(array));

system.out.println("排序後");

for (int i = 0; i < array.length - 1; i++)

}if (t != i)

system.out.println(arrays.tostring(array) + "\t" + i + "\t" + t);

}

Java學習筆記之陣列

陣列 概念 同一種型別資料的集合,其實陣列就是乙個容器.陣列的好處 可以自動給陣列中的元素從0開始編號,方便操作這些元素.格式1 元素型別 陣列名 new 元素型別 元素個數 格式2 元素型別 陣列名 new 元素型別 記憶體的劃分 1 暫存器 2 本地方法區 3 方法區 4 棧記憶體 儲存的都是區...

演算法之排序 學習筆記

排序 歸併排序 不交換資料,但需要借助額外的空間,用作臨時的儲存空間。快速排序 希爾排序 直接選擇排序 堆排序是不穩定的排序演算法,而基數排序 氣泡排序 直接插入排序 折半插入排序 歸併排序 基數排序是穩定的排序演算法。演算法的時間複雜度 注意 時間複雜度並不是指演算法執行所需要的時間,而是演算法執...

Java 陣列排序演算法

目錄 一 氣泡排序 二 直接選擇排序 三 反轉排序 以相反順序重新排列陣列 程式常用的排序方法有氣泡排序 選擇排序和快速排序等 除sort 方法外 public class bubblesort bubblesort sorter new bubblesort sorter.sort arr pub...