[转]C# 冒泡排序你还会吗?
本文转自:http://www.cnblogs.com/zhuiyi/archive/2011/06/12/2079143.html
都知道两个for循环搞定,大家是怎么记的这两个循环?
外层:循环数组长度; i<数组长度-1 //从0开始循环;
内层:循环排序次数; j<数组长度-1-i;
备忘代码:
using System;
using System.Collections.Generic;
using System.Text;
namespace HelloACCP
{
/// <summary>
/// 本程序演示使用二重循环实现数组的冒泡排序算法
/// </summary>
class Program
{
static void Main(string[] args)
{
int[] scores = new int[5];
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();
}
}
using System.Collections.Generic;
using System.Text;
namespace HelloACCP
{
/// <summary>
/// 本程序演示使用二重循环实现数组的冒泡排序算法
/// </summary>
class Program
{
static void Main(string[] args)
{
int[] scores = new int[5];
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();
}
}
}
posted on 2013-04-11 10:20 freeliver54 阅读(261) 评论(1) 编辑 收藏 举报