c语言排序及优化
来源:互联网 发布:wordpress seo 编辑:程序博客网 时间:2024/06/04 19:48
冒泡排序及优化代码
#include <stdio.h>#define n 5int main(void){
int a[n]={6,3,9,2,1};for(int i = 0; i < n - 1; i++){int flag = 1;for(int j = 0; j < n - 1 - i; j++){if (a[j] > a[j + 1]){a[j] = a[j] ^ a[j + 1];a[j+1] = a[j] ^ a[j + 1];a[j] = a[j] ^ a[j + 1];flag = 0;}}if (flag == 1)break;}for(int i =0;i<n;i++){printf("%d\n",a[i]);}return 0;}
选择排序未优化:
#include <stdio.h>#define N 5int main(void){
int array[N] = {5,4,3,2,1};int tmp;for(int i=0; i<N-1; i++){for(int j=i+1; j<N; j++){if(array[i]>array[j]){tmp = array[i];array[i] = array[j];array[j] = tmp;}}}for(int i=0; i<N; i++){printf("%d\t",array[i]);}return 0;}
优化后的选择排序:
#include <stdio.h>#define N 5//在比较次数一定的情况下,减少了交换的次数而,提高了效率
int main(void) // 0{ // idx=1int array[N] = {5,4,3,2,1}; // 2 10 3 4 5// j=1 2 3 4int tmp ,idx;for(int i=0; i<N-1; i++){idx = i;for(int j=i+1; j<N; j++){if(array[idx]>array[j]){idx = j;}}if(idx != i){tmp = array[i];array[i] = array[idx];array[idx] = tmp;}}for(int i=0; i<N; i++){printf("%d\t",array[i]);}return 0;}
阅读全文
0 0
- c语言排序及优化
- 【C语言】冒泡排序及优化
- C语言冒泡排序及选择排序优化<代码>
- C语言-数据结构-快速排序及优化-源代码
- C语言-数据结构-冒泡排序及优化-源代码
- C语言-数据结构-插入排序及优化-源代码
- C语言快速排序算法及三种优化方式
- 快速排序(已优化) ----- C语言
- 优化快速排序 C语言代码
- 归并排序及C语言实现
- 堆排序及C语言实现
- 快速排序及C语言实现
- 希尔排序及C语言实现
- 堆排序原理及c语言实现
- C语言中链表的插入及排序
- 单链表及快速排序c语言实现
- 希尔排序及C语言实现
- Shell排序算法及C语言实现
- 常见浏览器兼容性问题与解决方案
- ACM 各大OJ平台以及题目分类
- richtTextBox用法
- double丢失精度的问题
- 机器学习中牛顿法与拟牛顿法
- c语言排序及优化
- C# 判断输入的是否是整型-正则表达式
- dubbo+maven+web工程启动报错java.lang.NoSuchMethodError: org.springframework.core.GenericTypeResolver.resol
- C# winform 避免窗体重复打开
- 辗转相除法
- Linux创建快捷方式(链接)命令ln
- Go语言程序的数组初始化
- 菜鸟朋友圈的相关接口介绍
- 正则表达式常用的数据判断