浏览 2369 次
锁定老帖子 主题:选择排序算法
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-13
最后修改:2009-09-13
各种简单排序时公司面试笔试的喜好。分享一下书中源码,大家可以根据需要改写。
class ArraySel{ private long[]a; //封装long类型数组a[] private int nElems; //数据量 public ArraySel(int max){ //构造 a=new long[max]; //创建一个数组 nElems=0; //初始为空 } //将元素添加到数组中 public void insert(long value){ a[nElems]=value; nElems++; } //显示数组内容 public void display(){ for(int j=0;j<nElems;j++) //显示每个元素 System.out.print(a[j]+" "); //打印数据 System.out.println(" "); } //选择排序主代码 public void selectionSort(){ int out, in,min; for (out=0; out<nElems-1;out++){ //外循环,从最左端开始放 min=out; //第一个默认为最小 for(in=out+1;in<nElems;in++) //内循环 if(a[in]<a[min]) min=in; swap(out,min); } } //swap方法交换(最好写到程序内部,减少调用) private void swap(int one,int two){ long temp=a[one]; a[one]=a[two]; a[two]=temp; } } class SelectSortApp{ public static void main(String[] args){ int maxSize=100; //数组大小 ArraySel arr; //涉及到的数组 arr=new ArraySel(maxSize); //创建数组 //向数组添加数据 arr.insert(77); arr.insert(42); arr.insert(85); arr.insert(12); arr.insert(69); arr.insert(98); arr.insert(23); //数组打印 arr.display(); //将数组中数据排序 arr.selectionSort(); //再次打印数组数据 arr.display(); } }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |