对数组的操作核心思想就是对角标的控制操作。数组排序也是如此。直接选择排序是先选定数组的一个角标位置(通常是头角标),然后让数组中的每一个元素和该位置元素进行比较,将较大(小)的赋给该位置 ,一轮下来,就会在该位置得到最大(小)值。然后继续下一位置,以此类推就会得到从大到小(从小到大)的数组。我们发现如图
因此就会联想到for语句的嵌套- class SelectsortDemo
- {
- public static void main(String[] args)
- {
- int[]arr={2,1,4,7,5};
- selectsort(arr);
- printarray(arr);
- }
- public static void selectsort(int[]arr)
- {
- for (int x=0;x<arr.length-1 ;x++ )
- {
- for (int y=x+1;y<arr.length ;y++ )
- {
- if (arr[x]>arr[y])
- {
- int temp=arr[x];
- arr[x]=arr[y];
- arr[y]=temp;
- }
- }
- }
- }
- public static void printarray(int[]arr)
- {
- for (int x=0;x<arr.length ;x++ )
- {
- if (x!=arr.length-1)
- System.out.print(arr[x]+",");
- else
- System.out.print(arr[x]);
- }
- }
- }
复制代码 数组{2,1,4,7,5}排序结果 |
|