赞
踩
1、新建一个下标 int index = 0;
2、依次比较
3、找出极值 arr[index] < arr[n]
4、放入目标 //数组长度-1-n轮从第0轮开始
5、比较n轮
int[] arr = new int[]{8,7,1,5,4,2,6,3,9}; 第一步 声明索引0,默认第一个是极值 int index = 0; 第二部 依次比较 for(int i = 1; i < arr.Length; i++){ //从第一个开始比较 第三步 找出极值 if( arr[index] < arr[i]){ index = i; } } 第四步 放入目标位置 Length -1 - m轮数 //如果极值是目标位置,不交换 if(index != arr.Length -1 -m){ int temp = arr[index]; arr[index] = arr[arr.Length -1 -m]; arr[arr.Length -1 -m] = temp; } 第五步 比较m轮 for(int m=0;m<arr.Length;m++){ }
完整代码
int[] arr = new int[]{8,7,1,5,4,2,6,3,9}; for(int m = 0; m< arr.Length; m++){ int index = 0; for(int i = 1; i < arr.Length - m; i++){ //-m 排除上一轮已经放好位置的数 if( arr[index] < arr[i]){ index = i; } } if(index != arr.Length -1 -m){ int temp = arr[index]; arr[index] = arr[arr.Length -1 -m]; arr[arr.Length -1 -m] = temp; } } for(int i = 0; i < arr.Length; i++){ Console.Write(arr[i]+" "); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。