当前位置: 首页 > news >正文

C#中for循环的交换排序案例

1.排序的应用

1)交换排序:通过取出的数和该数位置后面剩余的其他数逐一进行比较,将最大的或者最小的一个数放在一组数的首位,然后再将第二大的数放在第二位,依次排完所有的数。

 
for ( int i = 0; i < (num.length - 1); i ++)
{
   for ( int j = i + 1; j < num.length; j ++)
   {
      if (num[i] > num[j])
       {
         int temp = num[j];
         num[i] = num[j];
         num[j] = temp;
       }
   }
}

以上代码就是实现将数组num中的最小值从i - num.length中找出来,并存在第一个位置,其中 num 是一个存放了大量数据的数组。

2)冒泡排序:通过不断的将相邻的两个数进行大小比较,大的数不断的往后面的位置交换,小的数向数组的顶部位置浮动。

 
 
for ( int i = nums.Length - 1; i > 0; i--)
{
   //在 0-i 范围内,将该范围内最大的数字沉到i
   for ( int j = 0; j < i; j++)
   {
     if (nums[j] > nums[j+1])
     {
       //交换
       int temp = nums[j];
       nums[j] = nums[j+1];
       nums[j+1] = temp;
     }
   }
}

3)选择排序:通过交换排序的方式,将某个范围内的最小数提到该范围内的第一位。

 
for ( int i = 0; i < nums.Length - 1; i++)
{
   int index = i; //先假设最小数的下标是i
   for ( int j = i + 1; j < nums.Length; j++)
   {
     if (nums[j] < nums[index])
     {
       index = j;
     }
   }
   int temp = nums[i];
   nums[i] = nums[index];
   nums[index] = temp;
}

转载于:https://www.cnblogs.com/zhangyilxy/p/8017777.html

相关文章:

  • Apache Server 负载能力测试
  • C#的delegate简单练习
  • 前端学习系列
  • 【前端】2017年12月11日 前端的内功心法语言篇--01
  • day14-css的存在形式以及优先级
  • [LeetCode] Ransom Note 赎金条
  • textField textView输入限制
  • Python中的generator对象
  • 数据结构C++ 队列——队列的应用
  • PS注意
  • 提升工作效率的方法
  • 基于Redis实现分布式锁,避免重复执行定时任务
  • 一篇文章告诉你React里为什么不能用index作为key
  • 阿武老师百搭傲娇句式
  • LaTeX模板(二)
  • 【Leetcode】101. 对称二叉树
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【5+】跨webview多页面 触发事件(二)
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • Android 架构优化~MVP 架构改造
  • echarts花样作死的坑
  • Gradle 5.0 正式版发布
  • jQuery(一)
  • Laravel Mix运行时关于es2015报错解决方案
  • mysql外键的使用
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • session共享问题解决方案
  • Solarized Scheme
  • 基于HAProxy的高性能缓存服务器nuster
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 使用权重正则化较少模型过拟合
  • 算法-插入排序
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • nb
  • 如何用纯 CSS 创作一个货车 loader
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (转)创业的注意事项
  • ***测试-HTTP方法
  • .Net Core和.Net Standard直观理解
  • @RestController注解的使用
  • @基于大模型的旅游路线推荐方案
  • [1]-基于图搜索的路径规划基础
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [CF543A]/[CF544C]Writing Code
  • [EFI]Atermiter X99 Turbo D4 E5-2630v3电脑 Hackintosh 黑苹果efi引导文件
  • [EWS]查找 文件夹
  • [ExtJS5学习笔记]第三十节 sencha extjs 5表格gridpanel分组汇总
  • [G-CS-MR.PS02] 機巧之形2: Ruler Circle
  • [Java][Android][Process] 暴力的服务能够解决一切,暴力的方式运行命令行语句
  • [Jquery] 实现鼠标移到某个对象,在旁边显示层。