Java实现冒泡排序与选择排序

实现选择排序和冒泡排序及执行流程图解

1、 选择排序:把第一个数与他后面的数进行比较,如果顺序则继续与后面比较,如果逆序则两数交换位置,继续将第一个数与交换位置后的数进行比较,这样就完成了第一轮排序。同理将第二位与其后的数比较,直到数组有序为止。

最好时间复杂度:O(n)     平均时间复杂度:O(n^2)        最坏时间复杂度:  O(n^2)     

空间复杂度:O(1) 

图解:

Java实现冒泡排序与选择排序

Java代码实现:

publicclass SelectOrder{

public void sort(int[] a){

         int temp= 0;

         for(inti=0;i<a.length;i++){

         for(intj=I;j<a.length;j++)

         if(a[j]<a[i]){

         temp =a[i];

         a[i] =a[j];

         a[j] =temp;

}

}

for(int i=0;i<a.length;i++){

                 System.out.println(a[i]);

                 }

}

}

2、 冒泡排序:将第一个数与相邻的数进行比较,如果顺序则继续第二个数与后面相邻的书进行比较;如果逆序则交换位置,继续和后面相邻的数进行比较,完成第一趟冒泡排序。同理,直到数组有序。

最好时间复杂度:O(n)     平均时间复杂度:O(n^2)        最坏时间复杂度:  O(n^2)                

空间复杂度: O(1) 

l  如果经过一趟冒泡排序不发生数据交换说明数组原本有序。

图示:

Java实现冒泡排序与选择排序

代码实现:

public class BubbleOrder {

public void bubble(int[]a){

          int temp=0;

          for(int i=0;i<a.length;i++){

                   for(intj=0;j<a.length-1;j++){

                            if(a[j]>a[j+1]){

                                   temp = a[j];

                                   a[j]=a[j+1];

                                   a[j+1] =temp;

                           }

                  }

          }

          for(int x=0;x<a.length;x++){

                  System.out.println(a[x]);

          }

      }

}

转载自https://blog.csdn.net/chen364567628/article/details/52123561