经典排序算法 – 奇偶排序Odd-even sort

来源:互联网 发布:网络陶渊明是什么意思 编辑:程序博客网 时间:2024/05/29 17:44

基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序

待排数组[6 2 4 1 5 9]

第一次比较奇数列,奇数列与它的邻居偶数列比较,如6和2比,4和1比,5和9比

[6 2 4 1 5 9]

交换后变成

[2 6 1 4 5 9]

第二次比较偶数列,即6和1比,4和5比

[2 6 1 4 5 9]

交换后变成

[2 1 6 4 5 9]

第三趟又是奇数列,选择的是2、6、5分别与它们的邻居列比较

[2 1 6 4 5 9]

交换后

[1 2 4 6 5 9]

第四趟偶数列

[1 2 4 6 5 9]

一次交换

[1 2 4 5 6 9]

  1. //Odd-even sort 
  2.   
  3. #include <stdio.h> 
  4. #include <stdlib.h> 
  5.   
  6. int main(int argc,char *argv[]) 
  7.     int array[6]={6,2,4,1,5,9}; 
  8.     int flag=1,temp,sign; 
  9.   
  10.     //Odd-even sort 
  11.     while(flag!=0) 
  12.     { 
  13.         flag=0; 
  14.   
  15.         //奇数列排序 
  16.         for(sign=0;sign<6;sign+=2) 
  17.         { 
  18.             if(array[sign]>array[sign+1]) 
  19.             { 
  20.                 temp=array[sign]; 
  21.                 array[sign]=array[sign+1]; 
  22.                 array[sign+1]=temp; 
  23.                 flag=1; 
  24.             } 
  25.         }  
  26.   
  27.         //偶数列排序 
  28.         for(sign=1;sign<6;sign+=2) 
  29.         { 
  30.             if(array[sign]>array[sign+1]) 
  31.             { 
  32.                 temp=array[sign]; 
  33.                 array[sign]=array[sign+1]; 
  34.                 array[sign+1]=temp; 
  35.                 flag=1; 
  36.             } 
  37.         }  
  38.         //这两个for循环应该可以合成一个的,但是不知道怎么做  
  39.     } 
  40.   
  41.     //输出排序后的数组 
  42.     for(sign=0;sign<6;sign++) 
  43.     { 
  44.         printf("%d",array[sign]); 
  45.     }  
  46.   
  47.     return 0; 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 三证合一后逾期怎么办 个体执照没办国税地税怎么办 丰巢APP注册没工牌号怎么办 农业银行k宝证书过期怎么办 个体户网上申报税没定期怎么办 遇到不给开票的商户怎么办 奶茶店电脑下单怎么办 个体户营业执照注销怎么办清税业务 注册公司没有办公地点怎么办 变更莒业执照法人怎么办手续 欠了几十万贷款怎么办 杭州公司跨区迁址怎么办 公司同市内跨区迁址怎么办 合同写错了字怎么办 农行卡转工行卡怎么办 外地人在北京交社保退休怎么办 身份证掉了单位宿舍怎么办居住证 广州租住单位宿舍怎么办居住证 公司u盾丢了怎么办 北京办了居住卡怎么办延期 商铺被陌生人注册左公司怎么办 营业执照年检登录密码忘了怎么办 欠人家钱没钱还怎么办 欠钱实在没钱还怎么办 党关系丢了10年怎么办? 离婚后生孩子怎么办出生证明 注册公司没有注册地址怎么办 银行流水不够2倍怎么办 个体户小店怎么办五险 姓和名五行相克怎么办? 三星s7刷机后计算器没有了怎么办 线雕鼻子山根鼓怎么办 在日本没有日币怎么办 明知合同回扣特别高怎么办 医院药品断货了怎么办 空腹吃菠萝胃疼怎么办 小孩黑户口怎么办上户 别人说名字起大了怎么办? 念佛号时心老是不集中怎么办 扑lv期嗓子痛头痛怎么办 公众号忘记了账号怎么办