本帖最后由 陈冲 于 2012-7-14 21:13 编辑
- public class Demo
- {
- public static void selectSort(int[] arr)
- {
- for(int x=0;x<arr.length-1;x++)
- {
- /*
- 内循环是从arr[x]开始,与后边的元素依次进行比较,
- 如果a[x]大,则将arr[x]与后边的元素交换,这样最终实现的结果是arr[x]存放数列中的最小值
- */
- for(int y=x+1;y<arr.length;y++)//这里应该是y++
- {
- if (arr[x]>arr[y])
- {
- int temp=arr[x];
- arr[x]=arr[y];
- arr[y]=temp;
- }
- }
- }
- }
- public static void main (String[]args)
- {
-
- int [] arr={6,5,3,1,2,4};
- selectSort(arr);
- www(arr);
-
- }
- public static void www(int[]arr)
- {
- for(int i=0;i<arr.length;i++)
- {
- if(i!=arr.length-1)
- System.out.print(arr[i]+",");
- else
- System.out.println(arr[i]);//不加这句的话就少输出了一个
- }
- }
- }
复制代码 代码比较混乱,我帮你整理了一下,你看看能不能明白
以这个数组为例
arr={6,5,3,1,2,4};
arr[0]依次与arr[1]、arr[2]、……arr[5]比较,每次比较后交换得数组:
{6,5,3,1,2,4}→
{5,6,3,1,2,4}→
{3,5,6,1,2,4}→
{1,5,6,3,2,4}→
{1,5,6,3,2,4}(arr[0]<arr[4],不交换)→
{1,5,6,3,2,4}(a[rr0]<arr[5],不交换)
然后外循环再次运行,arr[1]与后面的元素比较
|