C语言:冒泡法排序一组数,如何优化?
2015-11-13 16:28
357 查看
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int main() { int arr[] = { 5, 6, 7, 8, 9 ,1, 2, 3, 4}; int i = 0; int j = 0; int flag; int size = sizeof(arr) / sizeof(arr[0]); for (i = 0; i < size- 1 ; i++) { flag = 1;//设置标志位,优化冒泡 for (j = 0; j < size - 1 - i ; j++) { if (arr[j] < arr[j + 1]) { int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; flag = 0; } } if (flag) //说明未进入if内部,即尚未交换已经是所需的输出顺序 break; } for (i = 0; i < size; i++) { printf("%d ", arr[i]); } system("pause"); return 0; }
相关文章推荐
- C、C++中union用法总结
- C语言:使用冒泡排序,排序多个字符串(优化)。
- C、C++内存对齐
- 《C语言入门经典》Ivor Horton第九章练习题
- C++ Primer 笔记
- c++map和multimap
- 在C++中使用openmp进行多线程编程
- c++之堆的使用
- C++ Primer 学习笔记——表达式
- C++基础::函数、类、类型所在的头文件 && 接口的介绍
- JAVA的泛型和C++的模板的区别与联系
- TinyXML:一个优秀的C++ XML解析器
- C语言中static的作用及C语言中使用静态函数有何好处
- C++ 之 Excel文件读写 之 简便方法
- C语言
- [LeetCode]Linked List Cycle II
- c语言之指针与数组
- 静态map成员的一种替代方法
- C语言 memcpy memmove
- C++整型和字符串转换