奇偶排序Linux下c 实现
来源:互联网 发布:golang webloop 编辑:程序博客网 时间:2024/05/16 14:10
奇偶排序又叫奇偶换位排序,是通过比较数组中相邻位置(奇-偶)的两个元素,如果奇偶对第一个大于第二个,则交换,重复该操作。然后,用类似的方式,依次比对所有偶奇对的元素。下面给出奇偶排序的实现代码:
1、奇偶排序头文件:oddEvenSort.h
#ifndef ODDEVENSORT_H#define ODDEVENSORT_H#include<stdbool.h>extern void oddEvenSort(int *pArr, const int length);#endif
2、奇偶排序源文件:oddEvenSort.c
#include "oddEvenSort.h"void oddEvenSort(int *pArr, const int length){ int i, tmp; bool sorted =false; while(!sorted) { sorted=true; for(i=1; i<length-1; i+=2) { if(*(pArr+i)>*(pArr+i+1)) { sorted=false; tmp=*(pArr+i); *(pArr+i)=*(pArr+i+1); *(pArr+i+1)=tmp; } } for(i=0; i<length-1; i+=2) { if(*(pArr+i)>*(pArr+i+1)) { sorted=false; tmp=*(pArr+i); *(pArr+i)=*(pArr+i+1); *(pArr+i+1)=tmp; } } }}
3、main头文件:main.h
#ifndef MAIN_H#define MAIN_H#include<stdio.h>#include "oddEvenSort.h"int main(void);void initRandomArr(int *pArr, const int length);void showArr(const int *pArr, const int length);#endif
4、main源文件:main.c
#include "main.h"int main(void){ int length; printf("Input array length:\n"); scanf("%d", &length); if(length < 0) { printf("Array length must be larger 0\n"); return 1; } int arr[length]; initRandomArr(arr, length); printf("Get random array:\n"); showArr(arr, length); oddEvenSort(arr, length); printf("oddEventSort result:\n"); showArr(arr, length); return 0;}void initRandomArr(int * pArr, const int length){ srand(time(NULL)); int i; for(i=0; i<length; i++) { *(pArr+i)=rand()%1000; }}void showArr(const int *pArr, const int length){ int i; for(i=0; i< length; i++) { printf("%d ", *(pArr+i)); } printf("\n");}
5、编译
[root@localhost oddEvenSort]$ gcc -c oddEvenSort.c[root@localhost oddEvenSort]$ gcc -c main.c[root@localhost oddEvenSort]$ gcc -o main main.o oddEvenSort.o执行可执行文件main如下:
[root@localhost oddEvenSort]$ ./main Input array length:6Get random array:59 967 202 868 171 869 oddEventSort result:59 171 202 868 869 967
奇偶排序最差时间复杂度是O(n²),适用于排序小列表
- 奇偶排序Linux下c 实现
- 奇偶排序Linux下c 实现
- 实现奇偶排序(c语言)
- C语言实现数组的奇偶排序
- 奇偶排序java实现
- Java 实现奇偶排序
- 冒泡排序 Linux下c 实现
- 鸡尾酒排序Linux下c 实现
- 直接插入排序Linux下c 实现
- 选择排序Linux下c 实现
- 快速排序Linux下c 实现
- 梳排序Linux下c 实现
- 希尔排序Linux下c 实现
- 希尔排序Linux下C实现
- 奇偶冒泡排序 CUDA实现
- cuda实现奇偶冒泡排序
- erlang 实现并行奇偶排序
- linux下归并排序(MergeSort)算法的C语言实现
- 流媒体解决方案
- 描述 private、protected、internal和public修饰符的
- 苹果宣布Bob Mansfield继续留任
- 分析器错误消息: 未能加载文件或程序集“AjaxPro.2”或它的某一个依赖项。系统找不到指定的文件。
- dev 控件使用技巧,待完善
- 奇偶排序Linux下c 实现
- C#隐藏启动窗口方法总结
- web命名规则
- Android中对Sqlite的管理工具
- IIS7/IIS7.5 二级域名伪静态设置方法
- 对于公司裁员和转型的无力吐槽
- 简单网络协议SNMP之net-snmp开发snmpget
- 查看linux操作系统位数 (32位linux 64位linux)
- GPS数据解析 数据拆分 坐标转换 显示线路图源代码