C#實現冒泡排序與插入排序

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;
                    }
                }
            }
        }

發佈了26 篇原創文章 · 獲贊 13 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章