实现一个选择排序程序,排序整型数组
来源:互联网 发布:淘宝网看手机 编辑:程序博客网 时间:2024/05/20 10:53
实现一个选择排序程序,排序整型数组。
首先明白什么是选择排序,选择排序是指,每一次在待排序数列中,选择一个最大的(或最小的)放到数列的最前端,然后再用这种方法排列后面的数列。
下面用选择排序实现从小到大排序,程序代码如下:
#include <stdio.h>#include <assert.h>#include <Windows.h>void show(int arr[], int length) //打印数组函数{int i = 0;for (i = 0; i < length; i++){printf("%d ", arr[i]);}printf("\n");}int Myline(int arr[], int length){ //选择排序函数(由小到大排序)assert(arr);int i = 0;int k = 0;int j = 0;for (j = 0; j < length - 1; j++){int min = j;k = j;for (i = j+1; i < length; i++){if (arr[min]>arr[i]) //如果前一个数值大于它后面的{min = i; //把小的下标记下k = min;}}if (k!=j) //当前数不是最小的,交换当前数和比较的数列里最小的数{arr[j] = arr[j] ^ arr[k];arr[k] = arr[j] ^ arr[k];arr[j] = arr[j] ^ arr[k];}}}int main(){int a[] = { 2, 3, 4, 5, 1, 8, 45 , 6, 0}; //输入要比较的数列int len = sizeof(a) / sizeof(a[0]);show(a, len);Myline(a, len);show(a, len);system("pause");return 0;}
运行结果如下:
程序也可以从大到小排序,只需把判别条件改为 if(arr[min] < arr[i])即可,此处忽略min的真实意思,把它当做序列内最大的数。程序中用的是max,比较符合意思,
程序如下,原理和由小到大排序一模一样:
#include <stdio.h>#include <assert.h>#include <Windows.h>void show(int arr[], int length) //打印数组函数{int i = 0;for (i = 0; i < length; i++){printf("%d ", arr[i]);}printf("\n");}int Myline(int arr[], int length){ //选择排序函数assert(arr);int i = 0;int k = 0;int j = 0;for (j = 0; j < length - 1; j++){int min = j;k = j;for (i = j+1; i < length; i++){if (arr[max]<arr[i]) //如果前一个数值小于它后面的{max = i; //把大的下标记下k = max;}}if (k!=j) //当前数不是最大的,交换当前数和比较的数列里最大的数{arr[j] = arr[j] ^ arr[k];arr[k] = arr[j] ^ arr[k];arr[j] = arr[j] ^ arr[k];}}}int main(){int a[] = { 2, 3, 4, 5,1,8, 45 ,6,0}; //输入要比较的数列int len = sizeof(a) / sizeof(a[0]);show(a, len);Myline(a, len);show(a, len);system("pause");return 0;}
运行结果如下:
1 0
- 实现一个选择排序程序,排序整型数组
- 实现一个选择排序程序,排序整型数组。
- 实现一个选择排序程序,排序整型数组。
- 实现一个选择排序程序,排序整型数组
- 实现一个选择排序程序,排序整型数组
- C语言数组实现冒泡排序和选择排序程序
- C语言数组实现冒泡排序和选择排序程序
- 选择排序----数组实现
- 【C语言】写冒泡排序可以排序一个整型数组。
- 写冒泡排序可以排序一个整型数组
- 浅谈java中整型数组选择排序的思想
- 数组排序--选择排序
- 数组排序-选择排序
- 数组排序---选择排序
- 选择排序算法---对一个数组进行选择排序
- //2、写一个整型数组排序的函数
- java-对整型数组排序
- 使用qsort排序一个整型数组,一个浮点型数组,一个字符串数组
- androoid framework学习之 - RILd相关介绍
- int,float,double型转换深析
- SQL语句输出直角三角形
- SAP修改物料价格那些事
- Spring3系列: Spring AOP——Pointcut,Advisor
- 实现一个选择排序程序,排序整型数组
- JavaScript 面向对象介绍
- select重置
- vs2013编译win-32位下的libevent-2.0.21-stable,debug版本
- IOS的Cookie之网页身份认证与Session的追踪
- 微信小程序实例:move事件导致navigator组件和tap事件无效
- poj Children of the Candy Corn(BFS+DFS)
- apache 配置 httpd-vhost.conf 。VirtualHost 配置更改域名,端口 。 无法访问 localhost
- MyBatis动态传入表名,字段名参数的解决办法