求C#冒泡排序习题...

来源:百度知道 编辑:UC知道 时间:2024/05/30 02:24:55
基础些的...多谢...
题目,最好加上答案...急..
主要是题目!!!

我给你一个效率更高的改进算法吧

using System;
using System.Collections.Generic;
using System.Text;

namespace Temp
{
class Program
{
static void Main(string[] args)
{
//程序可输出比较次数和交换次数,并提供了效率更高的比较方法
int s = 0;
int c = 0;
int[] a = {4,5,3,1,8,6};
Console.WriteLine("冒泡排序");
int temp;
bool flag=true;
for (int i = a.Length-1; i >= 0 && flag; i--)
{
flag = false; //改进就在这里,当不再比较的时候flag就不会设置为true,停止排序
for (int j = 0; j < i; j++)
{
s++;
if (a[j] > a[j + 1])
{
c++;
flag = true;
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
Console.WriteLine("共比较了{0}次,交换了{1}次\n排序结果为:", s, c);
Print(a);
}

private static void Print(int[] a)
{
for (int i = 0; i < a.Length; i++)
Console.Write("{0} ", a[i]);
Console.WriteLine()