最近正在找工作,由於是找實習,被問到了很多的基礎題,尤其是排序這一塊,現在把自己熟悉的兩中排序寫出來,以供以後複習,
氣泡排序演算法執行起來非常慢,但在概念上來說它又是最簡單的,因此氣泡排序演算法在剛開始研究排序技術時是乙個非常好的演算法。以下是氣泡排序要遵循的規則:
比較兩個資料;
如果前面的資料比後面的資料大,則資料之間進行交換操作;
向後移動乙個位置,比較下面兩個資料;
但碰到第乙個排好順序的隊員後,返回佇列最前端重新開始下一趟排序.
public
static
void
bubblesort(int nums)}}
for(int i = 0 ; i< nums.length; i++)
}
一般來說,陣列中有n個資料項,第一趟排序中有n-1次比較,第二趟有n-2次,以此類推。這樣演算法作了n(n+1)/2次比較。
public
static
void
insertsort(int nums)//跳出迴圈(找到要插入的中間位置或已遍歷到0下標)
nums[j+1] = key;//將當前值插入
}
nums[j]第一次進行右移時覆蓋了nums[j+1]值,是否造成了資料丟失?
答:不會造成資料丟失,應為第一次右移前的i-1=j,此時nums[i]的值存在了key裡了。每次右移都為下一次右移或插入留出了位置,這就是插入排序的關鍵點所在。
java 氣泡排序 插入排序
1 氣泡排序 穩定 演算法描述 相鄰兩個元素比較,每輪排序都會產生剩餘需要排序的資料中的乙個最大或最小的資料。演算法實現 public class testsort 氣泡排序 for int i 0 ia j 1 2 直接插入排序 穩定 演算法描述 對於乙個陣列,從第i i 1 個元素開始,依次和第...
Java排序 氣泡排序 插入排序和選擇排序
插入排序 1 特殊 從第二個元素開始,和第乙個元素比較,如果滿足排序的順序,則交換順序。2 一般 把待比較和他之前的所有元素相比 從右往左 如果滿足排序的順序,這交換。private static void insertsort int arr 2 氣泡排序 1 從第乙個元素開始,和第二個元素相比,...
java選擇排序 氣泡排序和插入排序實現
排序是將一組 無序 的記錄序列調整為 有序 的序列的操作。最簡單的排序演算法有選擇排序 氣泡排序和插入排序。public class popsort system.out.println 選擇法排序 public static void selectsort int a for int i 0 i ...