2.Java中常用的几个算法

1.直接排序法:(原理是拿第一个位置和其他的位置进行比较然后在循环四次就可以了)

public static  void zhijiepaixun (int[] arr){

以一个角标的元素和其他元素进行比较。

在内循环第一次结束,最值出现的头角标位置上。

System.out.println("直接排序");

for(inti =0; i < arr.length-1; i++) {

        for(int j = i+1; j< arr.length; j++){

             if(arr [i] > arr [j]){

               int temp = arr[i];

                arr[i] = arr[j];

              arr[j] = temp;

              System.out.println(temp);

}


2.冒泡排序: (相邻的两个数字去比较)

//冒泡排序

public static voidmaopao(int[] arr){

//冒泡排序。

//比较方式:相邻两个元素进行比较。如果满足条件就进行位置置换。

//原理:内循环结束一次,最值出现在尾角标位置。

System.out.println("冒泡排序");

for(inti =0; i < arr.length-1; i++) {

for(intj =0; j

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

inttemp = arr[j];

arr[i] = arr[j+1];

arr[j+1] = temp;

}

}

}

}

3.二分法:

//折半查找(二分法)

public static intkm(int[] arr,intkey)

{

intmin,mid,max;

min =0;

max = arr.length-1;

mid = (max+min)/2;

while(arr[mid]!=key)

{

if(key>arr[mid])

min = mid +1;

else if(key

max = mid -1;

if(min>max)

return-1;

mid = (max+min)/2;

}

returnmid;

}

4.反转数组:

(原理:)反转其实就是头角标和尾角标的元素进行位置的置换,然后在让头角标自增。尾角标自减。当头角标<尾角标时,可以进行置换的动作。

//翻转数组

public static voidreverseArray(int[] arr){

for(intstart=0,end=arr.length-1; start

{

swap(arr,start,end);

}

}

//交换位置

public  static voidswap(int[] arr,inta,intb){

inttemp = arr[a];

arr[a] = arr[b];

arr[b] = temp;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容