数组 算法:(有冒泡和选择排序)

作者在 2016-08-24 02:22:53 发布以下内容

作为一个章节记录

1.数组的复制:用for循环arra,length依次给arrb赋值即可

2.查找:

import java.util.Scanner;

Scanner s=new Scanner(System.in);

String name=s.next();

String arr[]={"张一","张二","张三"};

boolean flag=flase;

for(int i=0;i<3;i++){

if ( name.equals(arr[i]) ) {

flag=true;break;

}

if(flag==true){syso("找到");}else{

syso(“没有这个学员存在”);

}

3.插入:在最后插入一个值,并升序排序

int arr[]={2,4,6,7};

arr[arr.length-1]=s.nextInt();

for(int i=arr.length-1;i>0;i--){

if(arr[i]<arr[i-1]){

int t=arr[i];

arr[i]=arr[i-1];

arr[i-1]=t;//交换

    }else break;

}

4.冒泡排序

int arr[]={2,1,4,5,7,5,8};

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

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

        if(arr[j]>arr[j+1]){     //此处为升序(大的往下沉),改为:arr[j]<arr[j+1]为降序(小的往下沉)

         int t=arr[i];

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

        arr[i+1]=t;

         }

    }

}

5.选择排序

int arr[]={5,4,3,2,1};

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

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

        if(arr[i]>arr[j]){   //改成<就是降序了

            int t=arr[i];

            arr[i]=arr[j];

            arr[j]=t;

            }

        }

}

冒泡原理是相邻元素比较并”沉底“,选择排序是第一个与后面每一个比较然后小的“升”起来,然后是第二个与后面每一个比较,然后是第三个。。。

最坏情况下 的复杂度都是:(n-1)(n-2)/2

代码-初级 | 阅读 2738 次
文章评论,共0条
游客请输入验证码
文章归档
最新评论