三種排序演算法可以總結為如下:
都將陣列分為已排序部分和未排序部分。
氣泡排序
static
void bubble()}}
}
插入排序
public
static
void
sort(int items)}}
private
static
intfindinsertionindex(int items, int valuetoinsert)
}throw
new invalidoperationexception();
}private
static
void
insert(int items, int indexinsertingfrom, int indexinsertingat)
items[indexinsertingat] = temp;
}
示例
【4,3,2,1】
【3,4,2,1】
【2,3,4,1】
【1,2,3,4】
選擇排序
for (int i = 0; i < num.length; i++)
}temp = num[i];
num[i]=num[index];
num[index] = temp;
}
思想
還是先來看看選擇排序的思想。選擇排序的思想非常直接,不是要排序麼?那好,我就從所有序列中先找到最小的,然後放到第乙個位置。之後再看剩餘元素中最小的,放到第二個位置……以此類推,就可以完成整個的排序工作了。可以很清楚的發現,選擇排序是固定位置,找元素。相比於插入排序的固定元素找位置,是兩種思維方式。不過條條大路通羅馬,兩者的目的是一樣的。
氣泡排序 選擇排序和插入排序
氣泡排序 思路 將相鄰的兩個數比較,將較小的數調到前頭 有n個數就要進行n 1趟比較,第一次比較中要進行n 1次兩兩比較,在第j趟比較中,要進行n j次兩兩比較。依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放...
氣泡排序和插入排序,選擇排序
插入排序原理 對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序核心 假設第乙個元素排好,之後的元素對排好的部分從後向前比較並逐一移動。選擇排序 按第乙個元素為基礎,遍歷所有元素,找出最小值,然後調換 公升序 include includevoid embed int a,in...
氣泡排序 選擇排序和插入排序
一 氣泡排序 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複以上過程,直至最終完成排序。氣泡排序是穩定的。演算法時間複雜度是o n 2 二...