c#学习之冒泡

今天刚看了一个编程题,就是进行数组排序,说到排序,其实可以使用数组自带的一个方法进行排序即可。而这里我想介绍另外一种排序方法。

编程题的大概意思是,从客户端输入一些数字,然后进行从小到大的排序。

冒泡的大概意思就是让前一个数组的元素与后一个元素进行比较,小的往前面交换,大的往后面交换,如果过程反复循环直到排序完成,这样的过程无论是小的往前还是大的往后都挺像是冒泡,所以这应该就是这种排序方法被称为冒泡的原因(本人的理解)。

接下来就是代码

String str = Console.ReadLine();
String[]strArray = str.split('');
int[]numArray=new int[strArray.Length];
for(int i=0;i<strArray.Length;i++){
  int temp=Convert.ToInt32(strArray[i]);
   numArray[i]=temp;
}//分割字符串,数组保存

 for(int j =1;j<str.length;j++){//外层for循环控制执行的次数
   for(int i =0;i<numArray.length-1-(j+1);i++){//内层for循环进行冒泡比较//-(j+1)是为了将上一个排序最后的值排除在外,因为上一次排序到最后的值肯定是最小的,没必要在新的循环中进行比较
    if(numArray[i+1]<numArray[i]){
      int temp=numArray[i];
      numArray[i]=numArray[i+1];
      numArray[i+1]=temp;
   }
 }
}//冒泡排序,

for(int i =0;i<numArray.Length;i++)
{
  Console.Write(numArray[i]+" ");
}
Console.ReadKey();

本人还只是个新手,欢迎有经验的大佬们多多指教。 

猜你喜欢

转载自blog.csdn.net/qq_42246149/article/details/82824611