1.插入排序详解和Demo代码
插入排序的工作方式像许多人排序一手扑克牌.开始时,我们的左手为空并且桌子上的牌面向下.然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置.为了找到一张牌的正确位置,我们从右向左将它与已在手中的每张牌进行比较,拿在左手中的牌总是排序好的.
插入排序的伪代码实现
INSERTION-SORT
for j = 2 to A.length
key = A[j]
//Insert A[j] into the sorted sequence A[1...j-1]
i = j - 1
while i > 0 and A[i] > key
A[i+1] = A[i]
i = i-1
A[i+1] = key
java代码实现如下
public void insertion_sort(){
int [] tempArray = {5,2,4,6,1,3,11,9,10,8,7};
for (int j = 2;j<=tempArray.length;j++){
int key = tempArray[j-1];
int i = j -2;
while (i >= 0 && tempArray[i] > key){
tempArray[i + 1] = tempArray[i];
i = i - 1;
}
tempArray [i + 1] = key;
}
for (int i = 0;i<tempArray.length;i++){
System.out.println(tempArray[i]);
}
}
此代码是从小到大的顺序排序,如果想从大到小的顺序排序,只需将上述代码while循环中的tempArray[i] > key 改为 tempArray[i] < key即可
运行之后是正确的,效果图如下
刚开始写算法的demo,后续还会陆续补充其他算法的示例代码!
不足之处请指正,谢谢!