1.冒泡排序
排序原則:設數組的長度爲n,則要進行n-1趟排序,每次排序都會把最大的數推向最後。如果在一趟排序中沒有元素移動,則排序終止。
排序方法:在第 i 趟排序中,對前 n-i+1 個元素進行排序:從左邊開始每兩個元素順序進行比較,如果右邊的元素比左邊大,則交換兩者的位置。
具體實現如下:
static void maopao(int[] a)
{
int i, j;
bool change = false;
for (i = 0; (i < a.Length-1)&&!change; i++)
{
change=true;
for (j = 1; j < a.Length - i; j++)
{
if (a[j - 1] > a[j])
{
change = false;
int k = a[j - 1];
a[j - 1] = a[j];
a[j] = k;
}
}
}
}
2.插入排序
排序原則:初始時認爲第一個記錄已排好序,而除了第一個以外的所有剩餘記錄構成了待排序記錄序列;從待排序序列中取出第一個記錄,與已排序序列進行比較,插入到已排好序的序列中,重複進行操作。
排序方法:在將待排序序列中的記錄與已排好序序列進行比較時,如果該記錄大於已排好序最右邊序列,則不移動,否則依次向左移動,直到該記錄比前一記錄大爲止。
具體實現如下:
static void insertsort(int[] a)
{
int i, j;
for (i = 1; i < a.Length; i++)
{
for (j = i; j >= 1; j--)
{
if (a[j] < a[j - 1])
{
int k = a[j - 1];
a[j - 1] = a[j];
a[j] = k;
}
}
}
}