地精排序

算法思想:

利用一层循环,进行来回冒泡。对一个乱序数组a[n]实现从小到大排列。

当   i=0   的时候, 什么都不做,只是  i++  ;
当第  i  个数和第  i+1  个数比较,即 a[i-1] 和 a[i] 比较,
a[i-1]<=a[i]  , 不需要进行交换的时候, i++;
a[i-1]>a[i]  , 需要进行交换的时候,交换两个数,然后 i--;

重复上述操作,直到i=n结束。

举个例子吧:

{6,2,4,1,5,9}=>{1,2,4,5,6,9}

i=0;    {6,2,4,1,5,9}    i++;
i=1;    {2,6,4,1,5,9}    i--;
i=0;    {2,6,4,1,5,9}    i++;
i=1;    {2,6,4,1,5,9}    i++;
i=2;    {2,4,6,1,5,9}    i--;
i=1;    {2,4,6,1,5,9}    i++;
i=2;    {2,4,6,1,5,9}    i++;
i=3;    {2,4,1,6,5,9}    i--;
i=2;    {2,1,4,6,5,9}    i--;
i=1;    {1,2,4,6,5,9}    i--;
i=0;    {1,2,4,6,5,9}    i++;
i=1;    {1,2,4,6,5,9}    i++;
i=2;    {1,2,4,6,5,9}    i++;
i=3;    {1,2,4,6,5,9}    i++;
i=4;    {1,2,4,5,6,9}    i--;
i=3;    {1,2,4,5,6,9}    i++;
i=4;    {1,2,4,5,6,9}    i++;
i=5;    {1,2,4,5,6,9}    i++;
i=6=n;结束

代码如下:

int a[N] = {1,2,5,…};
int i=0;
while(i<N){
  if(i==0||a[i-1]<=a[i]){
    i++;
  }else{
    swap(a[i],a[i-1]);
    i--;
  }
}

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

相关阅读更多精彩内容

  • 一、实验目的 学习使用 weka 中的常用分类器,完成数据分类任务。 二、实验内容 了解 weka 中 explo...
    yigoh阅读 12,775评论 5 4
  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 10,630评论 0 12
  • 你的公司会受益于渐进式网页应用吗? 渐进式网页应用(Progressive Web Apps,简称PWA)是一个新...
    扬子拉虫阅读 6,549评论 0 2
  • 零售价格表 1,整体过塑45一本 2,封面过塑38一本
    帅气的好吧阅读 1,292评论 0 0
  • 又到一年七夕节,回想起小时候过七夕节的情景。记得七夕一般都是在八月底,暑假即将结束的时候,那时候天儿已经慢慢变得凉...
    柏青123阅读 3,382评论 2 2

友情链接更多精彩内容