Java基础之常用算法

1:冒泡排序:

相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。

public static void bubbleSort(int[] arr) {

     for(int x=0; x

           for(int y=0; y

               if(arr[y]>arr[y+1]) {

               int temp = arr[y];

               arr[y] = arr[y+1];

               arr[y+1] = temp;

} } } }

2:简单选择排序:

把0索引的元素,和索引1以后的元素都进行比较,第一次完毕,最小值出现在了0索引。同理,其他的元素就可以排好。

public static void selectSort(int[] arr) {

     for(int x=0; x

         for(int y=x+1;y

                 if(arr[y]

                         int temp=arr[x];

                         arr[x]=arr[y];

                          arr[y]=temp;

}}}}


3:插入排序:

效果图:

它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

代码:



4:快速排序

快速排序的原理就是每次设置一个基准点,这个基准点可以是要排序的一趴数之间的任何数,然后将比基准点小的数放在基准点左边,比基准点大的数放在基准点右边

代码:





5:二分排序:

针对数组有序的情况(千万不要先排序,在查找)

public static int binarySearch(int[] arr,int value) {

          int min = 0;

          int max = arr.length-1;

          int mid = (min+max)/2;

       while(arr[mid] != value) {

               if(arr[mid] > value) {

                     max = mid - 1;

              }else if(arr[mid] < value) {

                    min = mid + 1;

          }

              if(min > max) {

                    return -1;

             }

                   mid = (min+max)/2;

 }

                 return mid;

 }

你可能感兴趣的:(Java基础之常用算法)