标签:算法数据结构
/***********冒泡排序算法的实现*********************/
#include <stdio.h>
void println(int array[], int len)
{
int i = 0;
for(i=0; i<len; i++)
{
printf("%d ", array[i]);
}
printf("\n");
}
void swap(int array[], int i, int j)
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
/ 34 23 45 67 77 54 23 1/
//例如我们从len-1的位置开始刚开始指针指向尾数1,1与23比小于23 交换位置,指针指向1,
//1与25比又要向前移动,直到首位置。
void BubbleSort(int array[], int len) // O(n*n)
{
int i = 0;
int j = 0;
int exchange = 1;
for(i=0; (i<len) && exchange; i++)
{
exchange = 0;
for(j=len-1; j>i; j--)
{
if( array[j] < array[j-1] )
{
swap(array, j, j-1);
exchange = 1; //如果没有移动也就是排好序列了。
}
}
}
}
int main()
{
int array[] = {21, 25, 49, 25, 16, 8};
int len = sizeof(array) / sizeof(*array);
println(array, len);
BubbleSort(array, len);
println(array, len);
return 0;
}
标签:算法数据结构
原文地址:http://godwithme.blog.51cto.com/12179442/1904513