浏览 3401 次
锁定老帖子 主题:常用简单排序算法汇总:冒泡+选择+插入
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-13
简单排序算法是我们学习数据结构首先接触到的,也是企业面试易考的。重温一下
class ArraySort{ private long[]a; //封装long类型数组a[] private int nElems; //数据量 public ArraySort(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(" "); } //swap方法交换(最好写到程序内部,减少调用) private void swap(int one,int two){ long temp=a[one]; a[one]=a[two]; a[two]=temp; } //冒泡排序主代码 public void bubbleSort(){ int out, in; for (out=nElems-1;out>1;out--){//外循环,找到需要比较的最后的位置 for(in=0;in<out;in++){ //内循环,比较outer前面的书籍 if(a[in]>a[in+1]){ //比较大小,将大数据排在后面 swap(in,in+1); } } } } //选择排序主代码 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); } } //插入排序主代码 public void insertionSort(){ int out, in; for (out=1; out<nElems;out++){ //外循环,从最左端开始放 long temp=a[out]; in = out; while(in>0&&a[in-1]>=temp){ a[in]=a[in-1]; --in; } a[in]=temp; //插入标记项 } } } class Sort{ public static void main(String[] args){ int maxSize=100; //数组大小 ArraySort arr; //涉及到的数组 arr=new ArraySort(maxSize); //创建数组 //向数组添加数据 arr.insert(77); arr.insert(42); arr.insert(85); arr.insert(12); arr.insert(69); arr.insert(98); arr.insert(23); //数组打印 arr.display(); //将数组中数据排序 System.out.println("冒泡排序算法结果"); arr.bubbleSort(); arr.display(); System.out.println("选择排序算法结果"); arr.selectionSort(); arr.display(); System.out.println("插入排序算法结果"); arr.insertionSort(); arr.display(); } }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |