冒泡排序思想和實現代碼


冒泡排序的思想:

冒泡排序是一種的最簡單的排序方法,他的思想是通過不斷的比較數組中前后兩個元素的大小,找出數組無序部分的最大值或者最小值,並且將該元素放在數組無序部分的最后。第一次循環可以看成是整個數組無序 ,所以放數組最后。

外循環每執行一次,就會將沒有排序的的部分中最大或者最小的元素找出放在沒有排序的部分最后的位置,內循環負責未排序部分,相鄰元素之間的比較。

冒泡排序代碼實現:

#include <stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAXLEN 100

//創建數組
void createArr(int arr[],int len)
{
int i=0;
srand((unsigned int)time(NULL));
for(i=0;i<len;i++)
{
arr[i]=rand()%MAXLEN;
}
return ;
}

//打印數組
void printArr(int arr[], int len)
{
int i=0;
for(i=0;i<len;i++)
{
printf("%d=%d\n",i+1,arr[i]);
}
return ;
}

//冒泡排序代碼
void bubble_sort(int arr[],int len)
{
int i=0,j=0;
for(i=0;i<len;i++)//控制每次循環執行到的位置,第一次整個數組,之后每次向前移動一個元素
{
for(j=1;j<len-i;j++)//負責未排序部分前后元素之間的比較,不滿足排序規則是交換兩個元素
{
if(arr[j]<arr[j-1])
{
int tem=arr[j];
arr[j]=arr[j-1];
arr[j-1]=tem;
}
}
}
return ;
}

int main(void)
{
printf("Hello World!\n");

int arr[MAXLEN]={0};

createArr(arr,MAXLEN);

bubble_sort(arr,MAXLEN);

printArr(arr,MAXLEN);

return 0;
}



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com