当前位置:   article > 正文

C#基础之选择排序

C#基础之选择排序

选择排序

1、概念
1、新建一个下标 int index = 0;
2、依次比较
3、找出极值  arr[index] < arr[n]
4、放入目标 //数组长度-1-n轮从第0轮开始
5、比较n轮
  • 1
  • 2
  • 3
  • 4
  • 5
2、代码实现
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++){
    
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

完整代码

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]+" ");
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/506835
推荐阅读
相关标签
  

闽ICP备14008679号