Java實現插入排序程式
在本文中,我們將學習如何在Java中實現插入排序。插入排序是一種基於比較的原地排序演算法。這裡,維護一個始終排序的子列表。例如,陣列的下半部分保持排序。要插入到此已排序子列表中的元素必須找到其適當的位置,然後插入到該位置。因此得名插入排序。
順序搜尋陣列,並將未排序的專案移動並插入到已排序的子列表(在同一個陣列中)。
問題陳述
對於給定的陣列,編寫一個Java程式來實現插入排序。
輸入
array[] = {10, 20, 25, 63, 96, 57}
輸出
10 20 25 57 63 96
插入排序演算法
實現插入排序演算法的步驟:
- 如果它是第一個元素,則已排序。返回1;
- 選擇下一個元素
- 與已排序子列表中的所有元素進行比較
- 將已排序子列表中所有大於要排序的值的元素右移
- 插入for迴圈中的值
- 重複此過程,直到列表排序
虛擬碼
以下是插入排序演算法的虛擬碼:
Algorithm: Insertion-Sort(A)
for j = 2 to A.length
key = A[j]
i = j – 1
while i > 0 and A[i] > key
A[i + 1] = A[i]
i = i -1
A[i + 1] = key
Java實現插入排序程式
以下是實現插入排序的Java程式:
public class InsertionSort {
public static void main(String args[]){
int array[] = {10, 20, 25, 63, 96, 57};
int size = array.length;
for (int i=1 ;i< size; i++){
int val = array[i];
int pos = i;
while(array[pos-1]>val && pos>0){
array[pos] = array[pos-1];
pos = pos-1;
}
array[pos] = val;
}
for (int i=0 ;i< size; i++){
System.out.print(" "+array[i]);
}
}
}
輸出
10 20 25 57 63 96
程式碼解釋
上面的Java程式實現了插入排序演算法。它首先初始化一個整數陣列,然後確定陣列的長度。主要的排序邏輯發生在一個for迴圈中,該迴圈從第二個元素開始迭代陣列。對於每個元素,將當前值 val 與陣列已排序部分的元素進行比較。如果已排序部分中的任何元素大於val,則迴圈將這些元素向右移動,為插入騰出空間。
最後,將val放在其正確的位置,確保陣列的左側保持排序。排序後,程式按順序列印已排序的陣列元素。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP