zoukankan      html  css  js  c++  java
  • 我比较喜欢的两种排序方法(冒泡排序、选择排序)

    选择排序,每一次外循环,在无序数中选择出一个最小,并放在无序数中的第一位

    View Code
     1 public static void SelectSort(int[] list)        //选择排序(升序) 
     2         {
     3             int min;//记录最小值索引
     4             int N = list.Length;                      //获得数组list的长度N
     5             for (int i = 0; i < N - 1; i++)           //外循环进行N-1轮比较
     6             {
     7                 min = i;//假设当前索引就是最小值索引
     8                 for (int j = i; j < N ; j++)          //内循环中在无序数中找最小值(j=i这里循环从i开始,因为i之前都是有序数,不用再比较了)
     9                 {
    10                     if (list[min] > list[j])
    11                     {
    12                         min = j;
    13                     }
    14                 }
    15                 //最小值与无序数中的第一个元素交换
    16                 int t = list[min];
    17                 list[min] = list[i];
    18                 list[i] = t;
    19             }
    20         }

    冒泡排序,每一次外循环,其中的最大数就下沉到当前两两比较数的最后一位

    View Code
     1 public static void BubbleSort(int[] list)     //冒泡排序(升序)
     2         {
     3             int N = list.Length;                      //获得数组list的长度N
     4             for (int i = 1; i <= N - 1; i++)          //外循环进行N-1轮比较
     5             {
     6                 for (int j = 0; j <= N - 1 - i; j++)   //内循环进两两比较,大数下沉(‘- i’外循环循环完一次选出一个最大值放在后面,后面的就不用再比较了,)
     7                 {
     8                     if (list[j] > list[j+1])          //前一个数比后一个数大就替换当前两个数,最后最大数就到最后一个了
     9                     {
    10                         int t = list[j];
    11                         list[j] = list[j+1];
    12                         list[j+1] = t;
    13                     }
    14                 }
    15             }
    16         }

    下面就让我们来实现一下吧!

    View Code
     1 private void Form1_Load(object sender, EventArgs e)
     2         {
     3             //数组排序
     4             int[] iList = new int[5];
     5             Random rd = new Random();
     6             for (int i = 0; i < iList.Length; i++)
     7             {
     8                 int iRD = rd.Next(1, 51);
     9                 if (iList.Contains(iRD))
    10                 {
    11                     i--;
    12                     continue;
    13                 }
    14                 iList[i] = iRD;
    15             }
    16             BubbleSort(iList);
    17 
    18             string strWrite = "";
    19             foreach (int i in iList)
    20             {
    21                 strWrite += i + " ";
    22             }
    23             textBox1.Text = strWrite;
    24         }
  • 相关阅读:
    HackingLab-再加密一次你就得到key啦~
    操作系统理论细节 2
    操作系统理论细节 1
    各种调度算法均衡利弊
    Github实现代码高亮
    Oracle 生成一张测试表并插入随机的个人基本信息数据
    一,Spring Boot 入门
    关于IDEA2020年1月新版MAVEN无法自动导入依赖
    操作系统存储管理--虚拟内存地址和物理内存地址
    apache2.4 tomcat 出现502 Proxy Error错误
  • 原文地址:https://www.cnblogs.com/pfcan66/p/2688542.html
Copyright © 2011-2022 走看看