#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语言)相关推荐

  1. 冒泡排序+选择排序+快速排序

    一. 冒泡排序 冒泡思想比较简单,直接上代码 void BubbleSort(int num[], int n){int i,j;for(i=0;i<n;i++){for(j=i;j<n; ...

  2. java冒泡排序 快速排序_Java必备-冒泡排序,选择排序,快速排序(纯代码实现)

    importjava.util.Arrays;/*** 是将无序a[0],a[1]...a[n],将其升序排序,比较a[0].a[1]的值,若结果为1,则交换两者的值,否则不变,接着继续向下比较.最后 ...

  3. c语言数组项目按身高排序,过三关 Java冒泡排序选择排序插入排序小练习

    材料:猴子排序,按照身高来从小到大来排序. 第一关: 老猴子带领小猴子队伍按大小逐一比较,交换,开始高矮排列队伍.(冒泡排序) 第二关: 太慢了,给第一关增加难度,进行选择排序 第三关: 最后,尝试选 ...

  4. 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...

    #include #include void SelectSort(int *a,int n);//预声明要调用的函数 int main(void) { int k; int x[]={,,,,,,, ...

  5. 冒泡排序选择排序插入排序

    目录 冒泡排序 选择排序 插入排序 冒泡排序 冒泡排序(最好是O(n), 最坏O(n2)) 原理: 拿自己与上面一个比较,如果上面一个比自己小就将自己和上面一个调换位置,依次再与上面一个比较,第一轮结 ...

  6. 【排序算法】冒泡排序|选择排序|插入排序|希尔排序

    文章目录 冒泡排序 选择排序 插入排序 希尔排序 冒泡排序   第一个元素开始向第二个元素比较,若大于则交换位置,不大于则不动.然后第二个元素和第三个元素比较,再然后第三个元素和第四个元素比较-一直比 ...

  7. 十大经典排序算法详解(一)冒泡排序,选择排序,插入排序

    养成习惯,先赞后看!!! 你的点赞与关注真的对我非常有帮助.如果可以的话,动动手指,一键三连吧!!! 目录 1.算法的评判标准 2.排序算法的分类 3.十大经典排序算法-冒泡排序,选择排序,插入排序 ...

  8. C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】

    目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...

  9. 按照字母排序快速排序c语言,从键盘输入十个国家的名称,用选择排序法按字母顺序排列后输出...

    从键盘输入十个国家的名称,用选择排序法按字母顺序排列后输出 RE:songgenius: 从键盘输入十个国家的名称,用选择排序法按字母顺序排列后输出. #include #include #inclu ...

最新文章

  1. 【学时总结】 ◆学时·III◆ 二分图
  2. iOS 6上的Safari是否缓存$ .ajax结果?
  3. java springcloud版b2b2c社交电商spring cloud分布式微服务 (四) 断路器(Hystrix)
  4. c语言虚函数是什么,C语言中什么函数不能声明为虚函数?
  5. java rsa 117_java实现RSA非对称加密解密
  6. let与expr命令的用法与实战案例
  7. 终极解密输入网址按回车到底发生了什么?
  8. 诗与远方:无题(七十七)- 远方
  9. 机器学习和深度学习_算法测评 | 机器学习VS深度学习
  10. MySQL group_concat函数使用详解
  11. 【问题解决方案】visudo: /etc/sudoers is busy, try again later
  12. Shiro 支持三种方式的授权
  13. 数据结构与算法笔记总结
  14. centos7 mysql server_centos7 mysqlserver 安装过程
  15. asp.net读写XML小结
  16. MongoDB特点和使用场景
  17. 计算机系统结构:指令的动态调度-Tomasulo算法
  18. 如何在线绘制简单又漂亮的思维导图
  19. 如何避免2.4GHz ISM频段下各种无线设备的干扰
  20. 基于CNN的动态手势识别:Real-time Hand Gesture Detection and Classification Using Convolutional Neural Networks

热门文章

  1. JAVA byte[] String
  2. C#——文件上传(一般处理程序ashx)
  3. LeetCode 91. Decode Ways
  4. 磁盘 分区 lvm之间await util的统计关系
  5. vue组件父子组件之间传递数据
  6. IntelliJ IDEA 中的 project 和 module 与Eclipse中workspace和project的关系
  7. js控制select数据绑定下拉列表
  8. PHP关于进程池的优化
  9. TeskLink—增加一种需求类型(业务流程)(version1.9.8)
  10. jquery实现tab切换加自动滚动切换