資料結構與演算法 排序

2021-10-20 21:26:54 字數 1741 閱讀 6585

排序原理:

1. 比較相鄰的元素。如果前乙個元素比後乙個元素大,就交換這兩個元素的位置。

2. 對每一對相鄰元素做同樣的工作,從開始第一對元素到結尾的最後一對元素。最終最後位置的元素就是最大 值。

氣泡排序的**實現:

public static void sortpop(int arr)}}

}}

測試:

public static void main(string args);

sortpop(arr);

for(int i=0;i排序原理:1.

每一次遍歷的過程中,都假定第乙個索引處的元素是最小值,和其他索引處的值依次進行比較,如果當前索引處

的值大於其他某個索引處的值,則假定其他某個索引出的值為最小值,最後可以找到最小值所在的索引

2.交換第乙個索引處和最小值所在的索引處的值

選擇排序的**實現:

public static void selectsort(int arr)

}//交換i索引處和minindex索引處的值

int temp = arr[i];

arr[i] = arr[minindex];

arr[minindex] = temp;

}}

測試**實現:

public static void main(string args) ;

selectsort(a);

system.out.println(arrays.tostring(a));

}

排序原理:1.

把所有的元素分為兩組,已經排序的和未排序的;

2.找到未排序的組中的第乙個元素,向已經排序的組中進行插入;

3.倒敘遍歷已經排序的元素,依次和待插入的元素進行比較,直到找到乙個元素小於等於待插入元素,那麼就把待

插入元素放到這個位置,其他的元素向後移動一位;

插入排序的**實現:

public static void insertsort(int arr) else }}

}

之前我們學習過基礎排序,包括氣泡排序,選擇排序還有插入排序,並且對他們在最壞情況下的時間複雜度做了分

析,發現都是

o(n^2)

,而平方階通過我們之前學習演算法分析我們知道,隨著輸入規模的增大,時間成本將急劇上

公升,所以這些基本排序方法不能處理更大規模的問題,接下來我們學習一些高階的排序演算法,爭取降低演算法的時間

複雜度最高端次冪。

排序原理:1.

選定乙個增長量

h,按照增長量

h作為資料分組的依據,對資料進行分組;

2.對分好組的每一組資料完成插入排序;

3.減小增長量,最小減為

1,重複第二步操作。

**實現:

public  static  void  hashsort(int  arr)else}}

h=h/2;

}}

《資料結構與演算法 排序》

1 快速排序 1.記錄 排序中的結點 2.檔案 一系列結點構成的線性表 3.排序又稱分類 4.排序碼 結點中乙個或者多個字段,其值作為排序運算中的根據。基本思想 每次選擇待排序的記錄序列的第1個記錄,按照排序碼的大小將其插入到已排序的記錄序列的適當位置,直到所有記錄全部排序完畢。最簡單的排序方法。整...

演算法與資料結構 排序

void x sort elementtype a,int n 預設討論從小到大的整數排序void bubble sort elementtype a,int n if flag 0 break 無交換則退出 void insert sort elementtype a,int n a i tmp ...

資料結構與演算法 排序演算法

帶問題思考以下幾點 1 每個演算法的思想是什麼?2 每個演算法的穩定性怎樣?時間複雜度是多少?3 在什麼情況下,演算法出現最好情況 or 最壞情況?4 每種演算法的具體實現又是怎樣的?n每次選擇乙個元素k插入到之前已排好序的部分a 1 i 中,插入過程中k依次由後向前與a 1 i 中的元素進行比較。...