这是我做的,我就是小小菜鸟,注释有点多,阳哥别忘心里去:lol- class ArrayTest
- {
- public static void main(String[] args)
- {
- //定义数组
- int [] arr={1,3,5,4,2};
- //遍历打印数组
- //for(int x=0;x<=arr.length-1;x++)
- // {
- //System.out.println("arr"+"["+x+"]"+"="+arr[x]);
- // }
-
- printArray(arr);
-
- Paixu1(arr);
- printArray(arr);
- Paixu2(arr);
- printArray(arr);
- }
- //遍历数组的方法
- public static void printArray(int[] arr)
- {
- for(int x=0;x<=arr.length-1;x++)
- {
- if(x!=arr.length-1)//判断是否是数组的最后一位
- System.out.print(arr[x]+",");
- else
- System.out.println(arr[x]);
- }
- }
- //排序--选择排序
- // 所谓选择排序就是将数组进行嵌套循环
- public static void Paixu1(int[] arr)
- {
- for(int x=0;x<=arr.length-1;x++)
- {
- for(int y=x+1;y<=arr.length-1;y++)//注意的是y=x+1是不予同脚标元素相比较假如是有y=1,那么当循环执行到第二圈的时候就挂了
- {
- if(arr[x]>arr[y])
- {
- int temp=arr[x];
- arr[x]=arr[y];
- arr[y]=temp;
- }
- }
- }
- }
- //排序--泡沫排序
- //泡沫排序 定义:相邻两个元素排序,如果符合条件换位
- public static void Paixu2(int[] arr)
- {
- for(int x=0;x<=arr.length-1;x++)
- {
- for(int y=0;y<arr.length-x-1;y++)//注意的是y<(=)不能写写了就越界arr.length-x减x是为每次比较元素减少一个,因为这种比较方式每一次都将最大值能取出来(出现在数组最后一位)减1是避免数组越界
- {
- if(arr[y]>arr[y+1])
- {
- /*int temp=arr[y];
- arr[y]=arr[y+1];
- arr[y+1]=temp;
- */
- Zhihuan(arr,y,y+1);
- }
- }
- }
- }
- //发现无论是什么排序都需要对满足条件的元素进行位置的置换
- //所以可以将这部分相同的代码提取出来,单独封装成函数
- //置换函数
- public static void Zhihuan(int[] arr,int a,int b)
- {
- int temp=arr[a];
- arr[a]=arr[b];
- arr[b]=temp;
- }
-
- }
复制代码 |