冒泡排序
为了方便说明
定义数组:int array[10]={4,2,6 ,9 ,22,1,100};
冒泡排序的过程如下:
第一次冒泡:
将第一个数4与第二个数2比较,4>2则位置不变,再将第二个数2与第三个数6进行比较,
2<6,则将2与6交换位置。以此类推,2<9,2与9交换位置,2<22,2与22交换位置,2>1,
则位置不变,1<100,则1与100交换位置。
此趟结束后数组为{4,6,9,22,2,100,1}
第二次冒泡:
将4与6进行比较,4<6,交换位置,4<9交换位置,4<22交换位置,4>2,位置不变,
2<100交换位置,2>1位置不变
此趟结束后数组为{6,9,22,4,100,2,1}
第三次冒泡:
将6与9比较,6<9交换位置,6<22交换位置,6>4位置不变,4<100交换位置,4>2位置不变,
2>1位置不变
此趟结束后数组为{9,22,6,100,4,2,1}
第四次冒泡:
将9与22比较,9<22交换位置,9>6位置不变,6<100交换位置,此后位置不变。
此趟结束后数组为{22,9,100,6,4,2,1}
第五次冒泡:
22与9比较位置不变,9与100比较,交换位置,此后位置不变。
此趟结束后数组为{22,100,9,6,4,2,1}
第六次冒泡:
22与100比较,交换位置,此后位置不变。
此趟结束后数组为{100,22,9,6,4,2,1}
#n为数组长度
其实现代码为
int i,j,t;
int a[n];
for( i=0;i<n-1;i++)
{
for( j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
好了,冒泡排序就说到这里,这样的分析应该来说还是比较容易理解的!
例子:
int[] array = { 8,1,4,7,3};
BubbleSort(array);
foreach(int i in array)
{
Response.Write(i);
}
public void BubbleSort(int[] array)
{
int length = array.Length;
for (int i = 0; i <= array.Length - 2; i++)
{
for (int j = length - 1; j >= 1; j--)
{
if (array[j] < array[j - 1])
{
int temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
}
}
泛型排序:
浙公网安备 33010602011771号