很久之前码的代码,这个是最基本的
时间复杂度,最坏的情况每次都得交换,那么 1+2+3+...+(n-1) = (1 + (n-1))*n/2;
所以时间复杂度为O(n
2)
模型在这里
-
#include<stdio.h>
-
-
/*****************************************************
-
-
-
只需要n-1趟就能排好
-
-
-
两个for循环的i,j比较容易理解
-
-
-
****************************************************/
-
-
//5 nums
-
void swap(int *a, int *b)
-
{
-
int tmp;
-
tmp = *a;
-
*a = *b;
-
*b = tmp;
-
}
-
-
void bubble_sort(int *a)
-
{
-
int *p = a;
-
int i, j,tmp;
-
for(i = 0; i < 5 - 1; i++)
-
{
-
for(j = 0; j + i < 5-1; j++ )
-
{
-
if(a[j] > a[j+1])
-
{
-
/* tmp = p[j];
-
p[j] = p[j+1];
-
p[j+1] = tmp;
-
*/
-
swap(&a[j], &a[j+1]);
-
}
-
}
-
}
-
// return p;
-
}
-
-
int main(int argc, char ** argv)
-
{
-
int array[5] = {3,1,2,5,9};
-
-
int *result = NULL;
-
-
int i;
-
-
// result = bubble_sort(array);
-
bubble_sort(array);
-
for(i = 0; i < 5; i++)
-
printf("a[%d] = %d \n", i ,array[i]);
-
-
while(1);
-
return 0;
-
-
}
阅读(1132) | 评论(0) | 转发(0) |