排序

以扑克牌为例,将一种花色的牌选出来(3~K,A,2)洗牌之后,要将小牌到大牌从左到右依次放好。

选择排序

1.找到所有牌中最小的牌,将它与第一个牌交换位置;
2.剩下的牌中找到最小的,与第二个牌交换位置;
......
直到最后一张牌。

for(int i=0;i

插入排序

1.从第二张牌(索引为1)开始,看第二张牌,如果第二张牌比第一张牌小,把第二张牌与第一张牌交换位置;
2.第三张牌,与前两张牌相比,如果比第二张牌小,与第二张牌交换位置;继续与第一张牌比,如果比第一张牌也小,继续与第一张牌交换位置,如果比第一张牌大,不交换位置;
...
N.第N+1张牌,与前N张牌相比,每一次与前一个位置的牌相比,如果比前一个位置小,就交换,直到不比前一个位置的牌小;
...

for(int i=1;i0;j--) begin
        if(a[j]

希尔排序

你可能感兴趣的:(排序)