冒泡排序如何将数组从小到大排列c#

2024-11-27 10:37:33
推荐回答(5个)
回答1:

//冒泡排序,我写了一下按升序的方法:
//C# Code

static void Main(string[] args)
{
string str = "6,9,4,10,8,2,13";
char[] q = {','};
string[] items = str.Split(q[0]);
int len = items.Length;
string tmp = "";
for (int i = 0; i < len; i++)
{
for (int j = i; j < len; j++)
{
if (Convert.ToInt32(items[i]) > Convert.ToInt32(items[j]))
//if (Convert.ToInt32(items[i]) < Convert.ToInt32(items[j])) 这句是从大到小
{
tmp = items[i];
items[i] = items[j];
items[j] = tmp;
}
}
}
foreach (var p in items)
{
Console.WriteLine(p);
}
Console.ReadKey();
}

回答2:

//需要自己输入时打开注释,清空数组
//C# Code

static void Main(string[] args)
{
int[] scores = new int[5]{23,54,13,27,55};
int i, j; // 循环变量
int temp; // 临时变量
// 读入成绩
//Console.WriteLine("请输入5个学员的成绩:");
//for (i = 0; i < 5; i++)
//{
// Console.WriteLine("请输入第{0}个学员的成绩:", i + 1);
// scores[i] = int.Parse(Console.ReadLine());//类型转换
//}
// 开始排序
for (i = 0; i < scores.Length - 1; i++)
{
for (j = 0; j < scores.Length - 1 - i; j++)
{
if (scores[j] > scores[j + 1])
{
// 交换元素
temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
// 排序后输出
Console.WriteLine("排序后的成绩为:");
for (i = 0; i < 5; i++)
{
Console.Write("{0}\t", scores[i]);
}
Console.ReadLine();
}

回答3:

bool exchange=true;
for(int i=1;i{
exchange=false;
for(int j=0;j {
if(array[j]>array[j+1])
{
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
exchange=true;
}
}
}

回答4:

冒泡排序只需要知道,外层循环n-1次,内层循环n-i-1次

回答5:

for (int i = 0; i < 数组长度; i++)
{
for (int j = 0; j < 数组长度-i-j; j++)
{
if (数组名[j]<数组名[j+1])
{
int n = 数组名[j];
数组名[j] = 数组名[j + 1];
数组名[j + 1] = n;
}
}
}