package stringlei;
/**@author shishuai e-mail:[email protected]
*@version create time : 2023年4月1日下午4:09:04
*類說明:氣泡排序演算法
氣泡排序演算法的運作如下:(從後往前)
比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
針對所有的元素重複以上的步驟,除了最後乙個。
持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
相同元素的前後順序並沒有改變,所以氣泡排序是一種穩定排序演算法。
*/public
class
paixu
;//外迴圈控制輪數
//比較輪數等於數列的長度
for(
int i =
0; i < nums.length -
1; i++)}
}for
(int n : nums)}}
/*34 4 56 17 90 65
* //比較次數
*4 34 17 56 65 90 //第一輪 5次
*4 17 34 56 65 //第二輪 4次
*4 17 34 56 //第三輪 3次
*4 17 34 //第四輪 2次
*4 17 //第五輪 1次
*@version create time : 2023年4月1日下午4:09:04
*類說明:選擇排序演算法
每一趟從待排序的資料元素中選出最小(或最大)的乙個元素,
順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。
選擇排序是不穩定的排序方法。
*/public class paixu ;
int minindex = 0;//用於記錄每次比較的最小值下標
//控制輪數
for(int i = 0; i < nums.length - 1; i++)
}//判斷需要交換的數下標是否為自己
if(minindex != i)
} //輸出結果
for(int n : nums) }}
/*34 4 56 17 90 65
* *4 34 56 17 90 65 第一輪 比較5次
*4 17 56 34 90 65 第二輪 比較4次
*4 17 34 56 90 65 第三輪 比較3次
*4 17 34 56 90 65 第四輪 比較2次
*4 17 34 56 65 90 第五輪 比較1次
基本思想:每步將乙個待排序的記錄,按其順序碼大小插入到前面已經排序的子串行的合適位置(從後向前找到
合適位置後),直到全部插入排序完為止。
*@version create time : 2023年4月1日下午4:09:04
*類說明:直接插入排序演算法
(從後向前找到合適位置後插入)
基本思想:每步將乙個待排序的記錄,
按其順序碼大小插入到前面已經排序的子串行的合適位置(前邊的肯定是排好的)
(從後向前找到合適位置後),直到全部插入排序完為止。
*/public
class
paixu
;//控制比較的輪數
for(
int i =
1; i < nums.length; i++
)else}if
(nums[j +1]
!= temp)
}//輸出結果
二分法查詢(折半查詢):
*前提是在已經排好序的陣列中,
*通過將待查詢的元素與中間索引值對應的元素進行比較,
*若大於中間索引值對應的元素,
*去右半部分查詢,否則,去左半部分查詢。
*依此類推。直到找到為止;找不到返回乙個負數。
package stringlei;
/**@author shishuai e-mail:[email protected]
*@version create time : 2023年4月1日下午4:09:04
*類說明:二分法查詢(折半查詢):
*前提是在已經排好序的陣列中,
*通過將待查詢的元素與中間索引值對應的元素進行比較,
*若大於中間索引值對應的元素,
*去右半部分查詢,否則,去左半部分查詢。
*依此類推。直到找到為止;找不到返回乙個負數。
*/public
class
paixu
;int index =
binarysearch
(num,88)
; system.out.
println
(index);}
//二分查詢演算法
《基礎演算法之排序》 1 氣泡排序 java實現
所謂氣泡排序,就是將較大的泡 數 不斷往上冒 1 從第乙個位置開始,比較當前位置與下乙個位置值的大小,如果前乙個位置大於後乙個位置,則交換位置,並繼續向後遍歷 2 上一次遍歷完成,即得到最大的元素,並將其交換位置到了最後一位 3 接下來從第乙個位置開始,再重新選出 0,n 2 位置的最大數,放到n ...
《基礎演算法之排序》 7 桶排序 java實現
桶排序的基本思路是 第一步 先獲取陣列中的最大和最小值,來得到桶的個數 第二步 然後遍歷陣列,將陣列中的值插入到桶中,陣列的值為桶的index 此桶的值0為這表示該位置沒有值,為1則表示有乙個值,為n的時候表示有多個值 第三步 重新遍歷桶,如果當前index對應的值不為0,則表示有值,放到arr陣列...
《基礎演算法之排序》 4 堆排序 java實現
對於堆排序,首先要了解堆的概念,堆分為大頂堆和小頂堆。顧名思義,大頂堆的堆頂元素為整個堆的最大值 小頂堆的堆頂元素為整個堆的最小值。對於本題的堆排序,採用的是大頂堆。堆排序主要分為兩部分,建堆和調整堆。建堆的過程就是遍歷要排序的陣列中的每乙個元素,然後依次放入大頂堆,並比較大小,找到每個元素的位置,...