冒泡排序 选择排序 快速排序(C语言)
#include <stdio.h>
#include <stdlib.h>
#include <time.h> //用到了time函数#define arraySize 10//随机数组个数//打印函数
void print(int array[])
{printf("打印随机数组\r\n");int i;for(i=0;i<arraySize;i++){printf("%d\t",array[i]);}printf("打印完毕\r\n");
}//产生随机数组
void createRandomArray(int array[])
{printf("生成新的随机数组\r\n");int i,number;srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样for (i=0; i<arraySize; i++){array[i] = rand() % 101; //产生0-100的随机数//printf("%d ", array[i]);}print(array);
}//冒泡排序
void bubbleSort(int array[])
{int i,j,temp;for(i=0;i<arraySize-1;i++)for(j=0;j<arraySize-1-i;j++)if(array[j]>array[j+1])//从小到大{temp=array[j+1];array[j+1]=array[j];array[j]=temp;}
}//选择排序
void selectionSort(int array[])
{int i,j,temp;for(i=0;i<arraySize-1;i++)for(j=i+1;j<arraySize;j++)if(array[i]>array[j])//从小到大{temp=array[j];array[j]=array[i];array[i]=temp;}
}//快速排序(重点)
void quickSort(int array[],int left,int right)
{while(left>=right){return;}int i=left,j=right,key=array[left];while(i<j)//一次查找{while(i<j&&array[j]>=key)//从后向前搜索{j--;}array[i]=array[j];while(i<j&&array[i]<=key)//从前向后搜索{i++;}array[j]=array[i];}array[i]=key;quickSort(array,left,i-1);quickSort(array,i+1,right);
}int main()
{int randomArray[arraySize];printf("选择排序方法:1、冒泡排序\t2、选择排序\t3、快速排序\t0、退出\r\n");int select;while(scanf("%d",&select)){switch(select){case 1:printf("---------------------\r\n");createRandomArray(randomArray);printf("冒泡排序\r\n");bubbleSort(randomArray);print(randomArray);printf("---------------------\r\n");break;case 2:printf("---------------------\r\n");createRandomArray(randomArray);printf("选择排序\r\n");selectionSort(randomArray);print(randomArray);printf("---------------------\r\n");break;case 3:printf("---------------------\r\n");createRandomArray(randomArray);printf("快速排序\r\n");quickSort(randomArray,0,arraySize-1);print(randomArray);printf("---------------------\r\n");break;case 0:exit(0);break;default:printf("---------------------\r\n");printf("输入有误,重新输入\r\n");printf("---------------------\r\n");break;}}return 0;
}
冒泡排序 选择排序 快速排序(C语言)相关推荐
- 冒泡排序+选择排序+快速排序
一. 冒泡排序 冒泡思想比较简单,直接上代码 void BubbleSort(int num[], int n){int i,j;for(i=0;i<n;i++){for(j=i;j<n; ...
- java冒泡排序 快速排序_Java必备-冒泡排序,选择排序,快速排序(纯代码实现)
importjava.util.Arrays;/*** 是将无序a[0],a[1]...a[n],将其升序排序,比较a[0].a[1]的值,若结果为1,则交换两者的值,否则不变,接着继续向下比较.最后 ...
- c语言数组项目按身高排序,过三关 Java冒泡排序选择排序插入排序小练习
材料:猴子排序,按照身高来从小到大来排序. 第一关: 老猴子带领小猴子队伍按大小逐一比较,交换,开始高矮排列队伍.(冒泡排序) 第二关: 太慢了,给第一关增加难度,进行选择排序 第三关: 最后,尝试选 ...
- 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...
#include #include void SelectSort(int *a,int n);//预声明要调用的函数 int main(void) { int k; int x[]={,,,,,,, ...
- 冒泡排序选择排序插入排序
目录 冒泡排序 选择排序 插入排序 冒泡排序 冒泡排序(最好是O(n), 最坏O(n2)) 原理: 拿自己与上面一个比较,如果上面一个比自己小就将自己和上面一个调换位置,依次再与上面一个比较,第一轮结 ...
- 【排序算法】冒泡排序|选择排序|插入排序|希尔排序
文章目录 冒泡排序 选择排序 插入排序 希尔排序 冒泡排序 第一个元素开始向第二个元素比较,若大于则交换位置,不大于则不动.然后第二个元素和第三个元素比较,再然后第三个元素和第四个元素比较-一直比 ...
- 十大经典排序算法详解(一)冒泡排序,选择排序,插入排序
养成习惯,先赞后看!!! 你的点赞与关注真的对我非常有帮助.如果可以的话,动动手指,一键三连吧!!! 目录 1.算法的评判标准 2.排序算法的分类 3.十大经典排序算法-冒泡排序,选择排序,插入排序 ...
- C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】
目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...
- 按照字母排序快速排序c语言,从键盘输入十个国家的名称,用选择排序法按字母顺序排列后输出...
从键盘输入十个国家的名称,用选择排序法按字母顺序排列后输出 RE:songgenius: 从键盘输入十个国家的名称,用选择排序法按字母顺序排列后输出. #include #include #inclu ...
最新文章
- 【学时总结】 ◆学时·III◆ 二分图
- iOS 6上的Safari是否缓存$ .ajax结果?
- java springcloud版b2b2c社交电商spring cloud分布式微服务 (四) 断路器(Hystrix)
- c语言虚函数是什么,C语言中什么函数不能声明为虚函数?
- java rsa 117_java实现RSA非对称加密解密
- let与expr命令的用法与实战案例
- 终极解密输入网址按回车到底发生了什么?
- 诗与远方:无题(七十七)- 远方
- 机器学习和深度学习_算法测评 | 机器学习VS深度学习
- MySQL group_concat函数使用详解
- 【问题解决方案】visudo: /etc/sudoers is busy, try again later
- Shiro 支持三种方式的授权
- 数据结构与算法笔记总结
- centos7 mysql server_centos7 mysqlserver 安装过程
- asp.net读写XML小结
- MongoDB特点和使用场景
- 计算机系统结构:指令的动态调度-Tomasulo算法
- 如何在线绘制简单又漂亮的思维导图
- 如何避免2.4GHz ISM频段下各种无线设备的干扰
- 基于CNN的动态手势识别:Real-time Hand Gesture Detection and Classification Using Convolutional Neural Networks
热门文章
- JAVA byte[] String
- C#——文件上传(一般处理程序ashx)
- LeetCode 91. Decode Ways
- 磁盘 分区 lvm之间await util的统计关系
- vue组件父子组件之间传递数据
- IntelliJ IDEA 中的 project 和 module 与Eclipse中workspace和project的关系
- js控制select数据绑定下拉列表
- PHP关于进程池的优化
- TeskLink—增加一种需求类型(业务流程)(version1.9.8)
- jquery实现tab切换加自动滚动切换