C#语音的选择排序?

2020-05-26 15:00发布

6条回答
男孩无衣
1楼 · 2020-05-26 20:11.采纳回答

选择排序(Selection sort)是一种简单直观的排序算法。
它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。


static void sort(int[]group)
{
    int temp;
    int pos=0;
    for(int i=0;i< group>    {
        pos=i;
        for(intj=i+1;j        {
            if(group[j]            {
                pos=j;
            }
        }//第i个数与最小的数group[pos]交换
        temp=group[i];
        group[i]=group[pos];
        group[pos]=temp;
    }
}

Mantra
2楼 · 2020-05-26 20:34

楼上回答的其实挺全面了,只不过我想指出的是您确定问的是 “语音”排序吗,还是“语言”排序???????????

如果您问问题都这么不认真的话,如何期望得到准确的答案呢,而且貌似也对不起认真回答的人吧。

Transform
3楼 · 2020-05-26 21:49

哈哈,楼主想说的是C#语言。1楼回答的好全面,好评。

蜗牛
4楼 · 2020-05-27 09:11

一楼回答的很专业,建议采纳

小狮子
5楼 · 2020-06-29 08:49

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 选择排序
{
   
//选择排序与冒泡排序比较的次数是一样的
   
//选择排序的交换次数要比冒泡排序的交换次数少

   
class Program
    {
       
static void Main(string[] args)
        {
           
int[] arr = { 15, 0, 10, 50, 55, 35, 15, 20 }; //待排序数组            SelectSort(arr);   //调用选择排序函数     
        }

       
private static void SelectSort(int[] arr)
        {
           
int temp = 0;
           
for (int i = 0; i < arr>1; i++)
            {
               
int minVal = arr[i]; //假设 i 下标就是最小的数
               
int minIndex = i;  //记录我认为最小的数的下标

               
for (int j = i + 1; j < arr>//这里只是找出这一趟最小的数值并记录下它的下标
                {
                   
//说明我们认为的最小值,不是最小
                   
if (minVal > arr[j])    //这里大于号是升序(大于是找出最小值) 小于是降序(小于是找出最大值)
                    {
                        minVal
= arr[j];  //更新这趟最小(或最大)的值 (上面要拿这个数来跟后面的数继续做比较)
                        minIndex = j;   
//记下它的下标
                    }
                }
               
//最后把最小的数与第一的位置交换
                temp = arr[i];   
//把第一个原先认为是最小值的数,临时保存起来
                arr[i] = arr[minIndex];  
//把最终我们找到的最小值赋给这一趟的比较的第一个位置
                arr[minIndex] = temp; 
//把原先保存好临时数值放回这个数组的空地方,  保证数组的完整性
            }
           
//控制台输出
           
foreach (int item in arr)
            {
                Console.WriteLine(
"C#遍历:{0}", item);
            }
        }
    }
}

20200921文 - 做更棒的自己!
6楼 · 2021-12-26 11:56

第一趟i=0的时候,j循环最后输出的min结果是4,那么
t=list[min]=6,list[min]=list[i]=10(i=0),list[i]=6.

min怎么会是4呢?for (int j = i + 1; j < list j++),第一趟,j的循环范围是从1到5,即min=5,正好是最后一个数,所以最后是拍好序的。>

相关问题推荐

没有解决我的问题,去提问