今天老师布置个冒泡排序法的作业,用C#做。弄了很久,就是不能实现如下结果。求求大神棒棒我,帮我调好代码,今天就要交作业,痛苦啊。可以打开下面地址直接调制代码:
http://www.manonggu.com/biancheng/12
调试好了,可以保存,然后分享地址小窗口发给我,必有重谢!!
我这边继续做下一个作业。帮帮我啊
前面那位仁兄的代码我改了一下,这样应该能过了
public void BubbleSort()
{
int temp;
for (int outer = 0; outer < upper; outer++)
{
for (int inner = 0; inner < upper - outer; inner++)
{
if ((int)arr[inner] > arr[inner + 1])
{
temp = arr[inner];
arr[inner] = arr[inner + 1];
arr[inner + 1] = temp;
}
}
}
}
运行结果
排序之前:
96 15 66 90 35 94 71 61 34 14
正在排序:
排序之后:
14 15 34 35 61 66 71 90 94 96
using System;
class Carray
{
private int[] arr;
private int upper;
private int numElements;
public Carray(int size)
{
arr = new int[size];
upper = size - 1;
numElements = 0;
}
public void Insert(int item)
{
arr[numElements] = item;
numElements++;
}
public void DisplayElements()
{
for (int i = 0; i <= upper; i++)
Console.Write(arr[i] + " ");
}
public void BubbleSort()
{
int temp;
for (int outer = 0; outer < upper; outer++)
{
for (int inner = outer; inner < upper; inner++)
{
if ((int)arr[inner] > arr[inner + 1])
{
temp = arr[inner];
arr[inner] = arr[inner + 1];
arr[inner + 1] = temp;
}
}
}
}
static void Main()
{
Carray nums = new Carray(10);
Random rnd = new Random(100);//100以内的随机数
for (Int16 i = 0; i < 10; i++)
{
nums.Insert(rnd.Next(0, 100));
}
Console.WriteLine("排序之前:");
nums.DisplayElements();
Console.WriteLine("\n正在排序:");
nums.BubbleSort();
Console.WriteLine("\n排序之后:");
nums.DisplayElements();
Console.ReadKey();
}
}
我在http://www.manonggu.com/biancheng/12 调试还是没有通过啊。能否分享下你调好的地址给我,这样我好直接分享到其他同学,拜托了
我测试了没有发现问题啊
排序之前:
96 15 66 90 35 94 71 61 34 14
正在排序:
排序之后:
15 66 35 61 14 34 71 90 94 96
运行结果
你看看你的输入输出是不是不符合要求
public void BubbleSort(int[] array)
{
for (int i = 0; i < array.Length - 2; i++)
{
for (int j = array.Length - 1; j >= 1; j--)
{
if (array[j] < array[j - 1])
{
int temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
}
}
using System;
class Carray
{
private int[] arr;
private int upper;
private int numElements;
public Carray(int size)
{
arr = new int[size];
upper = size - 1 ;
numElements = 0;
}
public void Insert(int item)
{
arr[numElements] = item;
numElements++;
}
public void DisplayElements()
{
for (int i = 0; i <= upper; i++)
Console.Write(arr[i] + " ");
}
public void BubbleSort()
{
//int temp;
//外循环,从最后一个数字开始
for (int outer = upper; outer > 0; outer--)
{
//内循环,从数组第0个位置开始
for (int inner = 0; inner <= outer - 1; inner++)
{
if (arr[inner] > arr[inner + 1])
{
arr[inner] = arr[inner] ^ arr[inner+1];
arr[inner + 1] = arr[inner] ^ arr[inner+1];
arr[inner] = arr[inner] ^ arr[inner+1];
/**
temp = arr[inner];
arr[inner] = arr[inner + 1];
arr[inner] = temp;
**/
}
}
}
}
static void Main()
{
Carray nums = new Carray(10);
Random rnd = new Random(100);//100以内的随机数
for (Int16 i = 0; i < 10; i++)
{
nums.Insert(rnd.Next(0, 100));
}
Console.WriteLine("排序之前:");
nums.DisplayElements();
Console.WriteLine("\n正在排序:");
nums.BubbleSort();
Console.WriteLine("\n排序之后:");
nums.DisplayElements();
Console.ReadKey();
}
}