作为常用的排序之一,冒泡排序的核心思想是:相邻的两个数进行比较,然后进行交换。
比较的次数为数组长度减一,假设数组长度为10,当你进行9次排序后,第10个数的位置已经固定了。
一次排序只能找出一个数的最大或者最小值,所以需要使用for循环的嵌套进行多次循环。
例题:编写一个控制台程序,要求用户输入一组数字用空格间隔,对用户输入的数字从小到大输出。(Array.Sort方法和冒泡排序)
Console.WriteLine("请输入一组数字并用空格间隔");
string str = Console.ReadLine();
string[] strArray = str.Split(" ");
int[] numArray = new int[strArray.Length];
for (int i = 0; i < strArray.Length; i++)//将string类型的数组变为int类型的数组
{
int temp =Convert.ToInt32( strArray[i]);
numArray[i] = temp;
}
Array.Sort(arrayString);//利用了CLR提供的方法(使用了快速排序方法)Array.Sort
foreach (var item in arrayString)
{
Console.WriteLine(item);
}
Console.WriteLine("请输入一组数字并用空格间隔");
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 k = 1; k < numArray.Length-1; k++)//用冒泡排序实现
{
for (int j = 0; j < numArray.Length - 1; j++)
{
if (numArray[j] > numArray[j + 1])
{
int temp = numArray[j + 1];
numArray[j + 1] = numArray[j];
numArray[j] = temp;
}
}
}
foreach (var item in numArray)
{
Console.WriteLine(item);
}