Java資料結構與演算法之陣列排序 奇偶排序

2021-07-05 16:25:36 字數 1203 閱讀 6211

直接看**

/**

* 排序陣列,用於對陣列中的元素進行排序

* 採用奇偶排序

*//* * 思路:

* 它的思路是在陣列中重複兩趟掃瞄。

* 第一趟掃瞄選擇所有的資料項對,a[j]和a[j+1],j是奇數(j=1,3,5,……)。

* 如果它們的關鍵字的值次序顛倒,就交換它們。

* 第二趟掃瞄對所有的偶數資料項進行同樣的操作(j=2,4,6,……)。

* 重複進行這樣兩趟 的排序直到陣列全部有序

* */

/* 詳解:

* 所謂奇偶排序,其核心是遍歷+交換

* 遍歷:分奇選項和偶選項

* 奇選項遍歷是指,以原陣列索引值為奇數的選項,作為新的索引值進行遍歷,偶選項也是如此;

* 比較:相鄰兩個元素之間進行比較,即a[i]和a[i+1]

* 如此迴圈往復,直到陣列全部有序即可

*//* * 兩種方法:

* 區別點在於最後退出迴圈的判斷。

*//* * 方法一,最後通過遍歷陣列,確定都有序後,才通知結束迴圈

*/public

void oddevensortone()

//再做奇選項的遍歷和比較

for(int

index = 1;index

1;index+=2)

//判斷該陣列是否有序

for(int

index=0;index

1;index++)

}countsort++;

}system.out.println("奇偶排序執行了"+countsort+"次!");}/*

* 方法二,當資料不再有交換的時候,就可以通知退出迴圈了

* 相比方法一,不需要重新再次遍歷一遍,節省時間

*/public

void oddevensorttwo()

}//再做奇選項的遍歷和比較

for(int

index = 1;index

1;index+=2)

}countsort++;

}system.out.println("奇偶排序執行了"+countsort+"次!");

Java資料結構與演算法之陣列排序 插入

a,對於隨機順序的資料進行插入排序需要o n2 的時間 b,當資料有序的時候,演算法執行需要o n 時間 c,當資料基本有序的時候,演算法幾乎只需要o n 時間 2 不變性 比outer變數下標號小的資料項都是區域性有序的。3 思路 a 設定乙個outer標籤,用於表示其左邊的元素已經排好,初始位置...

資料結構與演算法之陣列

陣列的基本概念 陣列是最簡單最常用的資料結構,但是也有一些注意事項 1 陣列的分配方式以及儲存位置 2 初始化 3 不同語言中的陣列高階定義 4 多維陣列 c c 中陣列分配方式 1 int a 10 適用於陣列長度已知或者對陣列長度不敏感的情況,比如定義乙個字串。2 int a int mallo...

資料結構與演算法之陣列

1 陣列的定義 陣列是相同型別資料的有序集合。他描述的是相同型別的若干個資料,按照一定先後順序排列組合而成,當中每乙個資料稱為元素,要訪問元素可以通過他的索引 下標去訪問他 2 陣列的幾個基本要素 1 陣列一旦被建立,其大小是不可以改變的,也就是長度是確定的 2 元素型別是相同型別 3 陣列型別可以...