選擇排序,氣泡排序,雙向氣泡排序

2021-08-02 11:03:33 字數 729 閱讀 9878

首先是選擇排序,

原理:1 找到未排序的數中最小的數放到最前面

2 陣列後移一位

3 重複上面兩部。

void selectsorting()

} if(min!=a[i])

swap(b[i],b[t]);

}}

這個應該是我第乙個接觸到的排序演算法,

結果第一次打排序水題直接上冒泡,直接接了一發tle

才知道有nlogn的演算法(這個後面再說)

先來碼一發氣泡排序

原理: 從頭開始

1 選擇當前要排序的數與後面的數逐個比較

2 如果不符合排序要求就交換他們直到到達尾部

3 後移陣列

4 重複上述3個步驟

void bubblesorting()

} print();

}

這個也是這次整理才知道的排序演算法。

其實就是每次把冒泡進行兩次。

第一次排乙個大的到後面去,

第二次排乙個小的到前面來

然後向中間靠攏。

void doublebubblesorting()

} r=t;

for(int i=r;i>l;i--)

}l=t;

} print();

}

選擇排序,氣泡排序,雙向氣泡排序

氣泡排序和選擇排序是最基本的排序方式,要掌握。氣泡排序重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。選擇排序每一趟從待排序的 資料元素 中選出最小 或最大 的乙個元素,順序放在已排好序的數列的...

氣泡排序 與 雙向氣泡排序

public class test if k 0 break last k public static void bidirectionalbubblesort int a last k for int m last m first m first k if first last break pub...

雙向氣泡排序

這是完全自主編碼,哈哈。但是思想還是書上先有的,但是沒有具體 下面是執行結果截圖,輸入的為23 45,2,15,9 冒牌排序流程如下,一次正向冒泡,從左至右。然後一次反向冒泡,從右至左。第一次把最大的記錄放到表尾,第二次將最小記錄放到表頭,如此反覆。pos 0 記錄無序序列的第乙個位置0,pos 1...