3.选择排序

#include<stdio.h>
#define N 10int main()
{int arr[N]={1,-1,20,100,35,634,3,6,12,62};int t;for(int i=0;i<N-1;i++){for(int j=i+1;j<N;j++){if(arr[i]>arr[j]){t=arr[i];arr[i]=arr[j];arr[j]=t;}}}for(int i=0;i<10;i++){printf("%d\n",arr[i]);}return 0;
}

4.选择排序提高:比而不换,只记下标

#include<stdio.h>
#define N 30int main()
{int arr[N];for(int i=0; i<N; i++){arr[i]=rand()%100;}for(int i=0; i<N-1; i++){int idx=i;for(int j=i+1; j<N; j++){if(arr[idx]>arr[j])idx=j;}if(idx!=i){arr[idx]^=arr[i];arr[i]^=arr[idx];arr[idx]^=arr[i];}}for(int i=0; i<N; i++){printf("%d\n",arr[i]);}
}


附:C中的异或运算符^知识点

(3~4):C实现数组选择排序相关推荐

  1. 西门子1200/1500PLC不定长数组选择排序的运用编程实例

    前景介绍: 1.选择排序原理:选择排序算法首先从第1个位置开始对全部元素进行选择,选出全部元素中最小的给该位置,再对第2个位置进行选择,在剩余元素中选择最小的给该位置即可:以此类推,重复进行" ...

  2. Java语言之数组_java语言之数组-----选择排序

    1. 数组的基本知识:数组是用来存储变量的集合 2. 数组的声明格式:元素类型 [] 数组引用变量名 = new 元素类型[元素个数] 如: int [] arrary = new int [10] ...

  3. 数组 选择排序 c语言

    解法一: #include <stdio.h> #define NUM 10 int main() {int a[NUM],i,j,k,t;printf("请输入%d个数&quo ...

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

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

  5. java数组逆序_Java 数组的排序、逆序

    数组的排序.逆序测试数据 public static void main (String[] args) { // 数组逆序 int[] arr = {1,2,3,4,5,6,7}; reverse( ...

  6. 【Java常识】7.0 数组实现冒泡排序、选择排序和二分查找

    1.0 冒泡排序原理 冒泡排序就是:轻的上浮,沉的下降.小的往前排,大的往后走. 原理:若一个N个元素的数组,两个相邻位置比较,如果前面的元素比后面的元素大就换位置. 每一次比较,都是相对最沉的到位. ...

  7. python遍历数组冒泡排序_经典排序算法(冒泡排序,选择排序,插入排序,快速排序,堆排序)python实现...

    最近在复习经典排序算法,自己用python也实现了一下,这里不会涉及到原理(因为网上方法已经很详细啦),就把函数贴上来,可以让大家自己试着运行下,再结合别处的原理也可以更好地理解它们的实现. 如果有错 ...

  8. 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试

    案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...

  9. Java黑皮书课后题第7章:*7.20(修改选择排序法)在7.11节中,使用了选择排序法对数组排序。改写7.11节程序,重复地在当前数组中找到最大值,然后将这个最大值与该数组中的最后一个数进行交换

    7.20(修改选择排序法)在7.11节中,使用了选择排序法对数组排序.改写7.11节程序,重复地在当前数组中找到最大值,然后将这个最大值与该数组中的最后一个数进行交换 题目 题目描述 破题 代码 运行 ...

最新文章

  1. 【 English 】社会类高频词汇、固定搭配
  2. STM32启动过程分析
  3. c语言编程怎么自学网,c语言函数
  4. python中if __name__ == __main__的解释
  5. 禁用笔记本键盘_如何禁用/启用笔记本内置键盘?
  6. vuex 源码分析_Vuex框架原理与源码分析
  7. tcpsyn发生在哪层_必看面试题之计算机网络:来自一位拿到了腾讯和字节双offer的大佬...
  8. HTML 基本知识点(草稿)
  9. linux 日志定时轮询流程详解(logrotate)
  10. Cocos Creator 使用 Android Studio 打包 APK 遇到的坑
  11. C++ STL 学习 :for_each与仿函数(functor)
  12. 叛乱联机服务器未响应,叛乱沙漠风暴开服注意事项及操作指南经验一览
  13. QtextEdit自定义右键菜单
  14. dig命令的介绍与使用
  15. 《计算机网络 自顶向下》第八章==网络安全
  16. ArcGIS实验教程——实验三十:地图注记与标注(标注转注记)用法案例详解
  17. SharePoint 网站的导入导出
  18. 感受野-Receptive Field的理解
  19. 华为又一重拳!迄今为止最强5G基带芯片、全球最快CPE正式发布!...
  20. NOIP2016·洛谷·天天爱跑步

热门文章

  1. 基于JAVA+SpringMVC+Mybatis+MYSQL的在线问卷答题系统
  2. 基于JAVA+SpringMVC+Mybatis+MYSQL的家庭理财管理系统
  3. raise JSONDecodeError(“Expecting value“, s, err.value) from None
  4. markdown html图片,Markdown语法对应的HTML标签实现
  5. linux下浏览器如何登录微信,js判断手机浏览器操作系统和微信浏览器的方法
  6. Linux—文件命令之touch命令
  7. springboot核心配置文件 application.properties 或者 yml 常用配置详解
  8. Ambari架构源码解析
  9. shell 除法 小数点
  10. asp判断ajax请求 -asp.net,一个asp注册验证用户名是否重复的Ajax实例