时间:2021-05-19
本文实例讲述了java数据结构与算法之奇偶排序算法。分享给大家供大家参考,具体如下:
算法思想:
基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序
举例吧,
待排数组[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比,5和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]
具体代码:
public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { int[] numbers = new int[]{12,33,45,33,13,55,34,7,6}; Main.oddEventSort(numbers); for(int i=0; i<numbers.length; i++){ System.out.print(numbers[i]+" "); } } private static void oddEventSort(int[] numbers){ int temp; for(int i=numbers.length-1; i>numbers.length/2-1; i--){ for(int j=1; j<=i; j+=2){ if(j==numbers.length-1)break; if(numbers[j]>numbers[j+1]){ temp = numbers[j]; numbers[j] = numbers[j+1]; numbers[j+1] = temp; } } for(int j=0; j<=i; j+=2){ if(j==numbers.length-1)break; if(numbers[j]>numbers[j+1]){ temp = numbers[j]; numbers[j] = numbers[j+1]; numbers[j+1] = temp; } } } }}PS:据说在多核时代这个算法比较好用
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了java数据结构与算法之冒泡排序。分享给大家供大家参考,具体如下:前面文章讲述的排序算法都是基于插入类的排序,这篇文章开始介绍交换类的排序算法,即
本文实例讲述了java数据结构与算法之简单选择排序。分享给大家供大家参考,具体如下:在前面的文章中已经讲述了交换类的排序算法,这节中开始说说选择类的排序算法了,
本文实例讲述了JavaScript数据结构与算法之检索算法。分享给大家供大家参考,具体如下:javascript数据结构与算法---检索算法(顺序查找、最大最小
本文实例讲述了Python实现的数据结构与算法之快速排序。分享给大家供大家参考。具体分析如下:一、概述快速排序(quicksort)是一种分治排序算法。该算法首
本文实例讲述了java数据结构与算法之noDups去除重复项算法。分享给大家供大家参考,具体如下:publicstaticvoidnoDupa(int[]a){