快捷搜索:  汽车  科技

c语言中冒泡排序算法(选择插入冒泡排序经典算法)

c语言中冒泡排序算法(选择插入冒泡排序经典算法)#include<stdlib.h>#include<time.h>纯属个人写法,跟网上其他人写的代码可能略有不同,但核心思路基本不变。*/#include<stdio.h>

c语言中冒泡排序算法(选择插入冒泡排序经典算法)(1)

c语言中冒泡排序算法(选择插入冒泡排序经典算法)(2)

/*

初学必须掌握的三种经典排序算法

选择排序/插入排序/冒泡排序

独立函数,传入参数调用即可实现对源数列进行排序。

纯属个人写法,跟网上其他人写的代码可能略有不同,但核心思路基本不变。

*/

#include<stdio.h>

#include<time.h>

#include<stdlib.h>

//插入算法

void insort(int [] int);

//选择排序算法

void selsort(int [] int);

//冒泡排序算法

void bubsort(int [] int);

int main(int argc char** argv)

{

int arr[20]={0} len=20;

srand((unsigned)time(NULL));

for(int i=0;i<len;i )

{

arr[i]=rand()0 1;

printf("%-4d" arr[i]);

}

puts("\n\n");

// insort(arr len);

// selsort(arr len);

bubsort(arr len);

for(int i=0;i<len;i )

{

printf("%-4d" arr[i]);

}

puts("\n\n");

return 0;

}

void insort(int arr[] int len)

{

int i j temp;

for(i=1;i<len;i )

{

temp=arr[i];

for(j=i-1;j>=0;j--)

{

if(temp<arr[j])

{ //数数组元素右移,腾出位置

arr[j 1]=arr[j];

}

else

{

//continue(错误);

//找到位置退出当前层循环

break;

}

}

arr[j 1]=temp;

}

}

void selsort(int arr[] int len)

{

for(int i=0;i<len-1;i )

{

for(int j=i 1;j<len;j )

{

if(arr[i]>arr[j])

{

int temp;

temp=arr[i];

arr[i]=arr[j];

arr[j]=temp;

}

}

}

}

void bubsort(int arr[] int len)

{

int n=len-1;

for(int i=0;i<n;i )

{

for(int j=0;j<n;j )

{

if(arr[j]>arr[j 1])

{

int temp;

temp=arr[j];

arr[j]=arr[j 1];

arr[j 1]=temp;

}

}

}

}

猜您喜欢: