- /**
- New灬狼
- 2015年12月24日18:43:38
- */
- /*
- 需求:定义一个功能,对数组进行升序和降序排列。
- 思路:
- 1,对数组进行排序,其实就是数组中两个数进行比较,
- 将位置不对的两个数进行位置互换。
- 2,可以选择【选择排序法】进行排序;
- 原理是:用数组中的任意一个元素和其他元素一一进行比较,
- 一圈比较下来就会确定排序的第一个元素,然后依次将剩下的元素再比较一遍,
- 直到最后一个元素时,因为不用比较也已经却定了位置,所以排序也就完成了。
- 步骤:
- 1,新建ArrayTest01.java;
- 2,定义换位功能,swap;
- 3,定义选择排序功能,selectSort;
- 4,定义一个数组;
- 5,输出排序前的序列;
- 6,排序;
- 7,输出排序后的序列。
- */
- class ArrayTest01
- {
- //定义换位功能:两个未知数参与运算,但是由于是一个数组里的两个元素,所以把数组也传进来;
- //由于没有运算结果,所以返回值类型是void。
- public static void swap(int [] arr,int a,int b)
- {
- int temp = arr[a];
- //System.out.print(temp+"\t");
- arr[a] = arr[b];
- //System.out.print(a+"\t");
- arr[b] = temp;
- //System.out.println(b+"\t");
- }
- //定义选择排序中的升序排序 selectSort
- //返回值类型:无,void;
- //参与运算的未知内容:一个数组;
- public static void selectSort(int [] arr)
- {
- for (int x=0;x<arr.length ;x++ )
- {
- for (int y =x+1;y<arr.length ;y++ ) //-1:是为了防止角标越界;
- {
- if(arr[x]>arr[y])
- {
- /*
- 不调用swap时的做法。
- int temp = arr[y];
- //System.out.print("【"+temp+"\t");
- arr[y] =arr[y+1];
- //System.out.print(arr[y+1]+"\t");
- arr[y+1] =temp;
- //System.out.print(arr[y]+"】");
- //printArray(arr);
- */
- swap(arr,x,y); //调用swap函数;
- }
-
-
- }
- }
- }
-
- public static void main(String []args)
- {
- int [] arr = {3,1,8,4,6,5,9,7,2};
- printArray(arr);
- selectSort(arr);
- printArray(arr);
-
- }
- public static void printArray(int[] arr )
- {
- System.out.print("数组中的元素是:\n{ ");
- for (int x=0;x<arr.length ;x++ )
- {
- if(x!=arr.length-1)
- {
- System.out.print("["+x+"]="+(arr [x])+" ,");
- }
- else
- {
- System.out.println("["+x+"]="+(arr [x])+" }\n");
- }
- }
- }
- }
复制代码
|
|