发布网友 发布时间:2024-12-19 12:05
共4个回答
热心网友 时间:2024-12-19 14:42
--------选择排序最简单
--------
int[] grade = { 58, , 74, 15, 23, 85, 100, 14, 59, 98, 75, 12, 45, 65, 84, 96, 74, 16, 33, 94 };
int temp;
for (int i = 0; i < grade.Length-1 ; i++)
{
for (int j = i; j < grade.Length ; j++)
{
if (grade[j] < grade[i])
{
temp = grade[i];
grade[i] = grade[j];
grade[j] = temp;
}
}
}
foreach (int g in grade)
Console.Write(g + "\t");
热心网友 时间:2024-12-19 14:40
最简单的就是冒泡排序法。
public int[] sort(int[] dataArray)
{
int len = dataArray.Length;
for(int i=0;i<len-1;i++)
{
for(int j=i+1;j<len;j++)
{
if(dataArray[i]<dataArray[j])
{
Swap(ref dataArray[i],ref dataArray[j]);
}
}
}
return dataArray;
}
private void Swap(ref int a,ref int b)
{
int temp = a;
a = b;
b = temp;
}
热心网友 时间:2024-12-19 14:36
Console.WriteLine("请输入您要排序的数目:");
int i=Convert.ToInt32(Console.ReadLine() );
int[] arr=new int[i];
for (int j = 0; j < i; j++)
{
arr[j] =Convert.ToInt32( Console.ReadLine());
}
for (int q = 0; q < i; q++)
{
for (int p = q + 1; p < i; p++)
{
if (arr[q] < arr[p])
{
int tem = arr[q];
arr[q] = arr[p];
arr[p] = tem;
}
}
}
for (int j = 0; j< i; j++)
{
Console.WriteLine(arr[j]);
}
Console.ReadLine();
控制台应用程序 ,你看看吧,希望对你有帮助
热心网友 时间:2024-12-19 14:40
C#不会,C就会一点,下面是C的代码,在vc++ 6.0内编译通过。、
可以自定义数据长度。
你自已看着改改。
经典的排列数组就是泡冒算法
泡冒算法又不复杂,自已研究下》??????
//对任意长度nums[]重排列.VC++ 6.0
#include "stdio.h"
#include "string.h"
#define count(a) sizeof(a)/sizeof(a[0])
void reconstruction(int nums[],int count);
void main()
{
int nums[]={10000,999,100,10,545436};
reconstruction(nums,count(nums));
for(int i=0;i<count(nums);i++)
{
printf("%d\n",nums[i]);
}
}
void reconstruction(int *p,int count)
{
int temp;
for(int i=0;i<count;i++)
{
for(int j=0;j<count;j++)
{
if(*(p+i) < *(p+j))
{
temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
}
}
}