c#写的冒泡优化,不知道是否还能优化!
我是初学着,用了好几个小时才出这,累死了!
希望高手们能给点建议,看是不是还能在优化点!
/// <summary>
/// 冒泡排序
/// </summary>
/// <param name= "myArray "> 数组 </param>
/// <param name= "arrLenght "> 数组长度 </param>
/// <param name= "order "> 排序:默认为降序。asc:升 desc:降序 </param>
/// <returns> </returns>
private int MaoPao(int[] myArray, int arrLenght, string order)
{
/*return 0--表示排序失败 1--表示排序成功*/
if (myArray.Length < 1 )
return 0;
order = order.ToLower();
int j,i;
int begin_ChangeIndex = 0;//最近的交换位置
int change; //若本轮冒泡没有交换数据,则表示排序成功,退出
/* 最外层循环,冒泡排序需要比较 myArray.Length-1 轮 */
for (i = 0; i < arrLenght - 1; i++)
{
change = 0;
//下轮冒泡只要冒到该位置即可
int end_head;
end_head = begin_ChangeIndex;
//把排序出来最大的放在最后
for (j = arrLenght - 1; j > = 1 + end_head; j--)
{
if (myArray[j] > myArray[j - 1])
{
int temp = myArray[j];
myArray[j] = myArray[j - 1];
myArray[j - 1] = temp;
change = 1;//发生了交换,故将交换标志置为真
begin_ChangeIndex = j;
}
}
if (change==0 )
{
if (order+ " " == "asc ")
{
for (j = arrLenght - 1, i = 1; j > = 0; j--, i++)
Response.Write( "第 " + i + "数 " + myArray[j] + " <br> "); //小冒泡排序