读书人

惯用简单排序算法汇总:冒泡+选择+插入

发布时间: 2012-11-10 10:48:50 作者: rapoo

常用简单排序算法汇总:冒泡+选择+插入

简单排序算法是我们学习数据结构首先接触到的,也是企业面试易考的。重温一下

?

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++){     //外循环,从最左端开始放longtemp=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();                  }}  

?

读书人网 >其他相关

热点推荐