C语言之冒泡排序的优化
2018-01-13 22:14
344 查看
1、原冒泡排序
2、思路图
void print_arr(int arr[], int sz) { int i = 0; for (i = 0; i < sz;i++) { printf("%d ", arr[i]); } printf("\n"); } void bubble_sort(int arr[], int sz) { int i, j; for (i = 0; i < sz - 1; i++) { for (j = 0; j < sz - 1 - i; j++) { if (arr[j] > arr[j + 1]) //后面小于前面的 交换 { int temp = arr[ 4000 j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int main() { int arr[] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; int sz = sizeof(arr) / sizeof(arr[0]); bubble_sort(arr, sz); print_arr(arr, sz); return 0; }
2、思路图
//冒泡排序的优化 //优化:让已有的算法更加快速、省时,省空间 #include<stdio.h> #include<stdlib.h> void bubble_sort(int arr[], int sz) { int i, j; for (i = 0; i < sz - 1; i++) { int flag = 1; for (j = 0; j < sz - 1 - i; j++) { if (arr[j] > arr[j + 1]) //后面小于前面的 交换 { flag = 0; int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } if (flag) break; } } void print_arr(int arr[], int sz) { int i = 0; for (i = 0; i < sz;i++) { printf("%d ", arr[i]); } printf("\n"); } int main() { int arr[] = { 0, 1, 2, 4, 3, 5, 6, 7, 8, 9 }; int sz = sizeof(arr) / sizeof(arr[0]); bubble_sort(arr, sz); print_arr(arr, sz); return 0; }
相关文章推荐
- C语言-数据结构-冒泡排序及优化-源代码
- C语言:使用冒泡排序,排序多个字符串(优化)。
- 第07天C语言(12):选择-冒泡排序优化
- c语言的简单排序:选择排序和冒泡排序及他们的优化
- 【C语言】冒泡排序及优化
- C语言中冒泡排序及优化
- C语言:使用冒泡排序,排序多个字符串(优化)。
- 排序1——冒泡排序及优化
- 优化版冒泡排序Java代码
- [置顶] 【C语言】 冒泡排序
- 黑马程序员---C语言 冒泡排序
- 如何优化C语言代码
- [TECH]DSP中C语言的优化等级
- 冒泡排序及优化
- c语言:编写冒泡排序,排序一个整形数组(从小到大)
- C语言 冒泡排序
- C语言中快速排序和插入排序优化的实现
- 求素数的C语言代码优化
- 【C语言】【笔试题】使用回调函数编写冒泡排序,可以排序整形数组,也可以排序字符串
- C语言编程优化运行速度