美文网首页Java基础总结
Java基础之常用算法

Java基础之常用算法

作者: 阿迪scar | 来源:发表于2019-06-01 23:00 被阅读0次

1:冒泡排序:

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

public static void bubbleSort(int[] arr) {

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

           for(int y=0; y<arr.length-1;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<arr.length-1;x++){

         for(int y=x+1;y<arr.length;y++(){

                 if(arr[y]<arr[x]){

                         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基础之常用算法

    本文链接:https://www.haomeiwen.com/subject/xnkztctx.html