當前位置:編程學習大全網 - 編程語言 - 模板編程的冒泡算法

模板編程的冒泡算法

泡泡:很常見,原理就不細說了。

# include & ltstdio.h & gt

void main()

{

int a[10] = {10,9,8,7,6,5,4,3,2,1 };

int I = 0;

int j = 0;

for(I = 0;我& lt10;i++)?

for(j = I+1;j & lt10;j++)?

if(a[I]& gt;a[j])

{

int t = a[I];

a[I]= a[j];

a[j]= t;

}

for(I = 0;我& lt10;i++)

{

printf("%d ",a[I]);

}

printf(" \ n ");

}

結果:

1 2 3 4 5 6 7 8 9 10

選擇:從每壹遍要排序的數據元素中選擇最小(或最大)的元素,放在排序序列的末尾,直到所有要排序的數據元素排列完畢。

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

# include & lttime.h & gt

int main(void)

{?

int a[10],I,j,tmp,b;

srand(time(NULL));?//使用時間種子隨機獲取數值。

//printf("time =[%d]\n ",time(NULL));

for(I = 0;我& lt10;i++)?

a[I]= rand()% 100;?//10隨機數

for(I = 0;我& lt10;i++)

printf("%3d ",a[I]);

printf(" \ n ");

for(I = 0;我& lt9;i++)

{?

tmp = I;

for(j = I+1;j & lt10;j++)

{

if(a[tmp]& gt;a[j])?

tmp = j;?

}?

如果(我!=tmp)?

{

//printf("tmp=[%d]\n ",tmp);

b = a[tmp];

a[tmp]= a[I];

a[I]= b;

}

}

for(I = 0;我& lt10;i++)

printf("%3d ",a[I]);

printf(" \ n ");

返回0;

}

結果:

15 17 13 68 25 32 67 12 79 41

12 13 15 17 25 32 41 67 68 79?

快速排序:通過壹次排序將待排序的數據分成兩個獨立的部分,其中壹部分的所有數據都小於另壹部分,然後按照這種方法對這兩部分數據進行快速排序,整個排序過程可以遞歸進行,從而實現整個數據成為壹個有序序列。

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

# include & lttime.h & gt

#定義最大值10

#定義TRAN(x,y){ int t;t = x;x = y;y = t;}

void quicksort(int[],int,int);

int main()

{

int number[MAX]= { 0 };

int i,num

srand(time(NULL));

Printf("排序前:");

for(I = 0;我& ltMAXi++)

{

number[I]= rand()% 100;

printf("%d ",數字[I]);

}

快速排序(數字,0,MAX-1);

Printf("排序後:");

for(I = 0;我& ltMAXi++)

{

printf("%d ",數字[I]);

}

printf(" \ n ");

返回0;

}

void quicksort(int number[],int left,int right)

{

int i,j,s;

if(left & lt;右)

{

s =數字[(左+右)/2];

I = left-1;

j =右+1;

while(1)

{

while(number[++ I]& lt;s);//找到s的第壹個大於# [i]的值。

while(編號[-j]& gt;s);//原理同上。

如果(i & gt= j)

{

printf("i=[%d],j=[%d]\n ",I,j);

打破;

}

TRAN(編號[i],編號[j]);

}

快速排序(數字,左邊,I-1);//遞歸

快速排序(數字,j+1,右);//遞歸

}

}

結果:

排序前:94 294 1 48 14 27 89 388 I =[5],j = [4]。

i=[4],j=[3]

i=[1],j=[1]

i=[3],j=[2]

i=[7],j=[7]

i=[5],j=[5]

i=[9],j=[8]

排序後:1 2 3 14 27 48 88 89 94 94

純手遊,望采納!都是我自己操作驗證過的!

  • 上一篇:關於音量調控
  • 下一篇:防溺水手抄報簡單又好畫 防溺水手抄報圖片大全
  • copyright 2024編程學習大全網