/*冒泡排序*/
这个冒泡排序其实并不是真正意义的冒泡。而冒泡排序重要的是两两比较交换,下面那个排序才是真正意义的冒泡排序。
#include<stdio.h>
void BubbleSort(int k[], int n)
{
int i,j,temp;
for(i=0;i<n-1;i++) //外层循环一次拿到外层循环的每一个元素。
{
for(j=i+1;j<n;j++) //然后再和内存循环所有元素相比。
{
if(k[i] > k[j]) //重的就往下沉。
{
temp = k[j];
k[j] = k[i];
k[i] = temp;
}
}
}
}
int main()
{
int i,a[10] = {5,6,2,3,7,9,4,1,3,1};
BubbleSort(a,10);
printf("排序后的结果是:");
for(i = 0; i<10; i++)
{
printf("%d\n", a[i]);
}
}
#include<stdio.h>
void BubbleSort(int k[], int n)
{
int i,j,temp;
for(i=0;i<=n-1;i++) //外层循环一次拿到外层循环的每一个元素。
{
for(j=n-1;j> i;j--) //从第n-i这个元素开始往上面比一直到第一个元素。
{
if(k[j-1] > k[j]) //轻的往上飘。
{
temp = k[j-1];
k[j-1] = k[j];
k[j] = temp;
}
}
}
}
int main()
{
int i,a[10] = {5,6,2,3,7,9,4,1,3,1};
BubbleSort(a,10);
printf("排序后的结果是:");
for(i = 0; i<10; i++)
{
printf("%d\n", a[i]);
}
return 0;
}
冒泡排序怎么画呢?
就是相邻元素之间的比较,大的沉到下面。
时间复杂度为O(n^2)。