首先是選擇排序,
原理: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...