Java数组排序-冒泡、选择、插入、快速等排序方式代码

import java.util.Arrays;
import java.lang.System;
import java.util.Scanner;
public class ArrayDemo{

	/*
	    //排序算法
		//定义方法
	    public static void quickSort(int[] arr,int low,int high){
        int i,j,temp,t;
        if(low>high){
            return;
        }
        i=low;
        j=high;
        //temp就是基准位
        temp = arr[low];
 
        while (i<j) {
            //先看右边,依次往左递减
            while (temp<=arr[j]&&i<j) {
                j--;
            }
            //再看左边,依次往右递增
            while (temp>=arr[i]&&i<j) {
                i++;
            }
            //如果满足条件则交换
            if (i<j) {
                t = arr[j];
                arr[j] = arr[i];
                arr[i] = t;
            }
 
        }
        //最后将基准为与i和j相等位置的数字交换
         arr[low] = arr[i];
         arr[i] = temp;
        //递归调用左半数组
        quickSort(arr, low, j-1);
        //递归调用右半数组
        quickSort(arr, j+1, high);
        }
 */
	
	
	
	
	public static void main (String[] args){
		
		//声明数组
		/*
		//第一种方法
		int[] array=new int[5];
		array[0]=0;
		array[1]=1;
		array[2]=2;
		array[3]=3;
		array[4]=4;
		
		
		//第二种方法
		//int[] array=new int[]{1,2,3,4,5};
		
		//第三种方法
		int [] array={1,2,3,4,5};
		for(int i=0;i<array.length;i++){
		System.out.print("a["+i+"]:"+array[i]+"\t");
		}
		*/
		
		
		
		/*
		//求平均分
		int [] arr=new int[5];
		Scanner sc=new Scanner(System.in);
		int sum=0;
		for(int i=0;i<arr.length;i++){
			System.out.println("请输入第"+(i+1)+"门分数");
			arr[i]=sc.nextInt();
			sum+=arr[i];
		}
		System.out.println(sum/(double)(arr.length));
		*/
		
		
		
		
		
		/*
		//冒泡排序
		int[] array=new int[]{2,5,4,6,8,7,9,10,22,21,1};
		for(int i=0;i<array.length;i++){
			for(int j=0;j<array.length-1-i;j++){
				if(array[j]>array[j+1]){
					//引入新变量
					//int temp=array[j];
					//array[j]=array[j+1];
					//array[j+1]=temp;
					
					//按位异或交换
					//array[j]=array[j]^array[j+1];
					//array[j+1]=array[j]^array[j+1];
					//array[j]=array[j]^array[j+1];
					
					//加法排序
					array[j]=array[j]+array[j+1];
					array[j+1]=array[j]-array[j+1];
					array[j]=array[j]-array[j+1];
					
				}
			}
		}
		for(int i=0;i<array.length;i++){
		System.out.print(array[i]+"\t");
		}
		*/
		
		
		
		/*
		//选择排序
		int [] array=new int[]{2,5,4,6,8,7,9,10,22,21,1};
		for(int i=0;i<array.length;i++){
		  for(int j=i+1;j<array.length;j++){
			if(array[i]>array[j]){
				int temp=array[i];
				array[i]=array[j];
				array[j]=temp;
			}  
		  }
		}
		for(int i=0;i<array.length;i++){
		System.out.print(array[i]+"\t");
		}
		*/
		
		
		/*
		//插入排序
		int[]arr=new int[]{1,2,4,5,3};
		int j;
		for(int i=0;i<arr.length-1;i++){
			int k=i;
			//当i=3时,j=arr[4]=3
			j=arr[i+1];
			while(k>=0&&arr[k]>j){
				
				arr[k+1]=arr[k];
				k--;
			}
			//把3赋值给arr[2]
			arr[k+1]=j;
		}
		for(int i=0;i<arr.length;i++){
		System.out.print(arr[i]+"\t");
		}
		*/
		
		
		
		/*
		//快速排序
		
		//方法在最上面
		int[] arr = {10,7,2,4,7,62,3,4,2,1,8,9,19};
        quickSort(arr, 0, arr.length-1);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+"\t");
        }
    */
		

		
		/*
		//二维数组
        int [][]arr=new int[3][];
		arr[0]=new int[5];
		arr[1]=new int[4];
		arr[2]=new int[3];
		arr[0][0]=1;
		arr[0][1]=2;
		arr[0][2]=3;
		arr[0][3]=4;
		arr[0][4]=5;
		arr[1][0]=6;
		arr[1][1]=7;
		arr[1][2]=8;
		arr[1][3]=9;
		arr[2][0]=10;
		arr[2][1]=11;
		arr[2][1]=12;
		for(int i=0;i<arr.length;i++){
			for(int j=0;j<arr[i].length;j++){
				System.out.print(arr[i][j]+"\t");
			}
			System.out.println();
		}
		*/
		
		
		
		/*
		//数组的拷贝
		int[][]intArray={{1,2},{1,2,3},{3,4}};
		int[][]intArrayBak=new int[3][];
		System.arraycopy(intArray,0,intArrayBak,0,intArray.length);
		intArrayBak[2][1]=100;

		for(int i=0;i<intArray.length;i++){
			for(int j=0;j<intArray[i].length;j++){
				System.out.print(intArray[i][j]+"\t");
			}
			System.out.println();
		}
		
		
		for(int i=0;i<intArrayBak.length;i++){
			for(int j=0;j<intArrayBak[i].length;j++){
				System.out.print("sadas"+intArrayBak[i][j]+"\t");
			}
			System.out.println();
		}
		*/

		
	}
}

–代码中为学习数组需要用到的代码,包括一维数组和二维数组的定义,四种常用排序,数组的打印,求平均分等简单的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值