日期:2014-05-18 浏览次数:21239 次
int[] array = new int[5] { 1, 4, 2, 5, 3 };
for(int i=1;i< arr.Length;i++)
{
for(int j=(arr.Length-1);j>=i;j--)
{
if(arr[j+1]<arr[j])
{
int temp= arr[j];
arr[j+1]=arr[j];
arr[j] = temp;
}
}
}
------解决方案--------------------
/// <summary>
/// 基本思路:两两比较
/// 排序,按升序排列
/// </summary>
/// <param name="str"></param>
public static void GetSort(int[] str)
{
int temp = 0;
Console.Write("原数组是:");
for (int i = 0; i < str.Length; i++)
{
Console.Write(str[i]+"\t");
}
Console.WriteLine();
for (int i = 0; i <str.Length; i++)
{
Console.WriteLine("第{0}轮的排序结果是:",i+1);
for (int j = 0; j < str.Length-1-i; j++) //两两比较 没一轮比较都会依次递减比表的次数
{
if (str[j] > str[j + 1])//比较相邻的两个数
{
temp = str[j]; //把较大的值放入到临时变量里
str[j] = str[j + 1]; //因为是升序 数组第一位放较小值
str[j + 1] = temp; //因为是升序 数组第二位放较大值(即temp)
}
//打印每次比较的结果
for (int k = 0; k < str.Length; k++)
{
Console.Write(str[k] + "\t");
}
Console.WriteLine();
}
Console.WriteLine();
}
}
/// <summary>
/// 降序,按降序排列
/// </summary>
/// <param name="str"></param>
public static void GetSort1(int[] str)
{
int temp = 0;
for (int i = 0; i < str.Length; i++) //外循环5次
{
for (int j = 0; j < str.Length - 1 - i; j++)
{
if (str[j] < str[j + 1]) //如果前一个小于后一个
{
temp = str[j]; //第一个值和它的下一个值比较 把小的就放入到临时变量里
str[j] = str[j + 1]; //把大的这个值放入到它后面
str[j + 1] = temp; //把小的这个值放入到第一位
}
//打印每次比较的结果
for (int k = 0; k < str.Length; k++)
{
Console.Write(str[k] + "\t");
}
Console.WriteLine();
}
Console.WriteLine();
}
}
------解决方案--------------------
http://topic.csdn.net/u/20090113/11/F371C1F2-9330-4B61-B845-00177E6AE953.html
楼主看看这个吧。。。
------解决方案--------------------
/// <summary>
/// 基本思路:两两比较
/// 排序,按升序排列
/// </summary>
/// <param name="str"></param>
public static void GetSort(int[] str)
{
int temp = 0;
Console.Write("原数组是:");
for (int i = 0; i < str.Length; i++)
{
Console.Write(str[i]+"\t");
}
Console.WriteLine();
for (int i = 0; i <str.Length; i++)
{
Console.WriteLine("第{0}轮的排序结果是:",i+1);
for (int j = 0; j < str.Length-1-i; j++) //两两比较 没一轮比较都会依次递减比表的次数
{
if (str[j] > str[j + 1])//比较相邻的两个数
{
temp = str[j]; //把较大的值放入到临时变量里
str[j] = str[j + 1]; //因为是升序 数组第一位放较小值
str[j + 1] = temp; //因为是升序 数组第二位放较大值(即temp)
}
//打印每次比较的结果
for (int k = 0; k < str.Length; k++)
{
Console.Write(str[k] + "\t");
}
Console.WriteLine();
}
Console.WriteLine();
}
}
/// <summary>
/// 降序,按降序排列
/// </summary>
/// <param name="str"></param>
public static void GetSort1(int[] str)
{
int temp = 0;
for (int i = 0; i < str.Length; i++) //外循环5次
{
for (int j = 0; j < str.Length - 1 - i; j++)
{
if (str[j] < str[j + 1]) //如果前一个小于后一个
{
temp = str[j]; //第一个值和它的下一个值比较 把小的就放入到临时变量里
str[j] = str[j + 1]; //把大的这个值放入到它后面
str[j + 1] = t