C# 选择排序 代码
发布网友
发布时间:2022-03-30 03:33
我来回答
共4个回答
懂视网
时间:2022-03-30 07:55
以下用JAVA举一个例子,选择排序代码方法如下:
算法描述:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置进行交换;接着对不包括第一个记录以外的其他记录进行第二轮比较,得到最小的记录并与第二个记录进行位置交换;重复该过程,直到进行比较的记录只有一个时为止。
热心网友
时间:2022-03-30 05:03
你的选择排序的程序,我帮你改完了,你看看吧(改动的地方见注释)
using System;
namespace SortApplication{
class SortProgram{
static void Main(string[] args){
int N=10,min,temp;//这里定义临时变量和最小元素下标变量
int[] a=new int[N];
var r=new Random();
Console.Write("原有数列顺序:");
for(int i=0;i<N;i++)
{
a[i]=r.Next(0,30);
Console.Write(a[i]+" ");
}
Console.WriteLine("");
Console.Write("选择排序后数列顺序:");
for(int i=0;i<N-1;i++) //每次循环数组,找出最小的元素,放在前面,前面的即为排序好的
{
min=i; //假设最小元素的下标
for(int j=i+1;j<N;j++) //将上面假设的最小元素与数组比较,交换出最小的元素的下标
if(a[j]<a[min])
min=j;
//若数组中真的有比假设的元素还小,就交换
if(i!=min)
{
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
Console.Write(a[i]+" ");
}
Console.ReadKey();
}
}
}
追问
你好,我根据你的思路加了两句,在a[i]=a[j]上下。运行了下没啥问题了。不过这好像是冒泡排序的算法...
追答你那么写也行,标准的选择排序是我写的那样.
热心网友
时间:2022-03-30 06:21
i<N-1
这里超出索引范围了吧,这种简单的错误,执行时,IDE会提示的吧
热心网友
时间:2022-03-30 07:55
你可以到paws3d去看一看C#部分的实战案例