当前位置: 首页 > 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模板(二)
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 「译」Node.js Streams 基础
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • extract-text-webpack-plugin用法
  • Java,console输出实时的转向GUI textbox
  • Javascript弹出层-初探
  • js学习笔记
  • laravel with 查询列表限制条数
  • mac修复ab及siege安装
  • rabbitmq延迟消息示例
  • React Native移动开发实战-3-实现页面间的数据传递
  • react 代码优化(一) ——事件处理
  • Redis的resp协议
  • Spring-boot 启动时碰到的错误
  • v-if和v-for连用出现的问题
  • Vue UI框架库开发介绍
  • 从零搭建Koa2 Server
  • 高性能JavaScript阅读简记(三)
  • 工作手记之html2canvas使用概述
  • 今年的LC3大会没了?
  • 聚类分析——Kmeans
  • 聊一聊前端的监控
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 我这样减少了26.5M Java内存!
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (+4)2.2UML建模图
  • (11)MATLAB PCA+SVM 人脸识别
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)mysql使用Navicat 导出和导入数据库
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .NET : 在VS2008中计算代码度量值