排序

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

选择排序

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

for(int i=0;i<N;i++) begin
    int min=i;
    for(int j=i+1;j<N;j++) begin
        if(a[j]<a[min])
            min=j;
    end
    exch(a,i,min);
end

插入排序

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

for(int i=1;i<N;i++) begin
    for(int j=i;j>0;j--) begin
        if(a[j]<a[j-1])   exch(a, j, j-1);
        else              break;
    end
end

希尔排序

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 10,605评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 9,100评论 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 5,034评论 0 2
  • 概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的...
    Luc_阅读 6,807评论 0 35
  • 其实答案很简单,很多人都“知道”,但也仅仅停留在“知道”的层面上。 到底是什么决定了你的薪水?——能力 而又是什么...
    辰星剧社马冲阅读 3,978评论 5 9

友情链接更多精彩内容