java算法:冒泡排序
冒泡排序:不断遍历文件,交换倒序的相邻元素,直到文件排好顺序。冒泡排序的主要优点是容易实现,冒泡排序通常会比选择排序、插入排序慢。
如,对EXAMPLE 字母进行排序:
E X A M P L E .开始
[A] E X [E] M P L .E移到了A之后,A移到了最前面
A E [E] X L M P .L移到了E之后,E移到了X前面
A E E [L] X M P .L移到了X前面
A E E L [M] X P ...
A E E L M [P] X
A E E L M P [X]
- publicclassBubble{
- publicstaticvoidmain(String[]args){
- intn=20;
- MyItem[]a=newMyItem[n];
- for(inti=0;i<n;i++){
- a[i]=newMyItem();
- a[i].rand();
- }
- for(inti=0;i<n;i++){
- System.out.print(a[i]+"");
- }
- bubble(a,0,n);
- System.out.println("");
- print(a,n);
- }
- privatestaticvoidprint(MyItema[],intn){
- for(inti=0;i<n;i++){
- System.out.print(a[i]+"");
- }
- }
- publicstaticvoidbubble(MyItem[]a,intl,intr){
- for(inti=l;i<r;i++){
- for(intj=r-1;j>i;j--){
- compExch(a,j-1,j);
- }
- }
- }
- publicstaticbooleanless(Itemv,Itemw){
- returnv.less(w);
- }
- publicstaticvoidexch(Item[]a,inti,intj){
- Itemt=a[i];
- a[i]=a[j];
- a[j]=t;
- }
- publicstaticvoidcompExch(Item[]a,inti,intj){
- if(less(a[j],a[i])){
- exch(a,i,j);
- }
- }
- }