做网站侵权吗,西客站网站建设,西安今天消息,网站浮动条十大排序算法合集#xff08;c语言般#xff09; 冒泡排序 选择排序 插入排序 希尔排序 快速排序 归并排序 堆排序 计数排序 桶排序 基数排序 分类:
交换类
1.冒泡排序 2.快速排序
分配类
1.计数排序 2.基数排序
选择类
1.选择排序
归并类
1.归并排序
插入类
1.插入… 十大排序算法合集c语言般 冒泡排序 选择排序 插入排序 希尔排序 快速排序 归并排序 堆排序 计数排序 桶排序 基数排序 分类:
交换类
1.冒泡排序 2.快速排序
分配类
1.计数排序 2.基数排序
选择类
1.选择排序
归并类
1.归并排序
插入类
1.插入排序 2.希尔排序 冒泡排序 #includestdio.h
//它是一个基于交换的排序,每一轮搜索最大值放到序列的尾部
#define MAXSIZE 10void intArr(int arr[],int length){for(int i0;ilength;i){arr[i]rand()%20;}
}void showArr(int arr[],int length){for(int i0;ilength;i){printf(%d,arr[i]);}printf(\n----------------------\n);}*/
/*原始的冒泡排序
void bubSort(int arr[],int length){int flag1;//定义一个标记若是还没有进行length次循环就已经排列好了则可通过flag判断是否退出循环while(length-- flag1){//若是没有触发交换条件则意味着已经排好序了则退出循环flag0;for(int i0;ilength;i){if(arr[i1]arr[i]){flag1;int temparr[i];arr[i]arr[i1];arr[i1]temp;//两个两个比较若前面的值大于后面的值则两者交换进行length轮每一轮都选出最大值放到后面已排序部分}}}}*//*
相比于原始的冒泡排序增加了flag标记避免了后续的无用操作
void bubSort(int arr[],int length){int flag1;//定义一个标记若是还没有进行length次循环就已经排列好了则可通过flag判断是否退出循环while(length-- flag1){//若是没有触发交换条件则意味着已经排好序了则退出循环flag0;for(int i0;ilength;i){if(arr[i1]arr[i]){flag1;int temparr[i];arr[i]arr[i1];arr[i1]temp;//两个两个比较若前面的值大于后面的值则两者交换进行length轮每一轮都选出最大值放到后面已排序部分}}}}int main(){
srand((unsigned int)time(NULL));
int arr[MAXSIZE];
initArr(arr.MAXSIZE);
showARR(arr,MAXSIZE);
bubSort(arr,MAXSIZE);
system(pause);
return 0;
}