C#直接选择排序

数组用直接选择法进行大到小排序

开发工具与技术:工具:Visual Studio/c#,技术:C#
作者:刘胜
撰写时间:2019-01-20


一、直接选择排序的基本思想

基本思想:直接选择排序的基本思想是将指定排序位置与其他数组元素分别对比,如果满足条件就交换元素值,注意这里区别冒泡排序,不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换(如从最后一个元素开始排序),这样排序好的位置逐渐扩大,最后整个数组都成为已排序好的格式。
直接选择排序方法属于选择排序的一种,它的排序速度要比冒泡排序快一些,也是常用的排序算法。(补充)

二、算法示例
每一趟从待排序的数据元素中选择最大(或最小)的一个元素,顺序地放在已排好序的数列的最后,直到全部待排序的数据元素排完。
列如:
初始数组资源【100, 23, 11, 2, 5】
第一趟排序后【100, 23, 11, 5】2
第二趟排序后【100, 23, 11】2,5
第三趟排序后【100, 23】2,5,11
第四趟排序后【100】2,5,11,23

三、算法实现

 static void Main(string[] args) 
 {
     sort();//调用sort();
 }   
 static void sort(){

   int[] array = { 100, 23, 11, 2, 5 };//初始数组

   for (int i = 0; i < array.Length; i++){
   
   int index = i;
   
   for (int j = 1 + i; j < array.Length; j++){
      if (array[j] > array[index])
         {
              index = j;//比较最大的值之后,把索引赋给index,作为下一次比较
         }
      }
       int temp = array[i];//存放临时变量
       array[i] = array[index];
       array[index] = temp;
   }
   var t = from i in array where i > 10 select i;//Linq语句
   Console.Write("first Num is:{0} ", array[0]);//输出数组中的最大值

   Console.WriteLine("\n\tarray.TypeName is: {0} \n\t t.TypeName is: {1} ", array.GetType().Name, t.GetType().Name);//打印数组类型
   string arrayloop = "";
   
   do
     {
          string tm = showArray(array);
          Console.WriteLine("\nDo you console array[yes][no]");
          arrayloop = Console.ReadLine();
          Console.WriteLine();
      } while (arrayloop.ToLower() == "yes");
  }
 static string showArray(int[] array)//打印数组顺序
 {
    string str = "";
    for (int i = 0; i < array.Length; i++)
    {
        Console.Write("{0}> ", array[i]);
    }
    str = Console.ReadLine();
    return str;
 }

四、运行结果
在这里插入图片描述

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值