C++数组排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++数组排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1991字,纯文字阅读大概需要3分钟。
内容图文
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<windows.h> 4 5 #define SIZE 5 //数组中元素的数量 6 7 void swap(int *p1, int *p2) //交换数组中的两个元素 8 { 9 int temp = *p1; //创建变量储存元素p1的指针 10 *p1 = *p2; //将元素p1的指针改为元素p2的指针 11 *p2 = temp; //将元素p2的指针改为之前存储的元素p1的指针 12 } 13 14 int main() //程序从这里开始运行 15 { 16 int array[SIZE]; //创建一个数组 17 printf("未排序数组:\n\n"); 18 for (int i = 0; i < SIZE; i++) //遍历数组中所有元素 19 { 20 array[i] = rand(); //数组中每个元素赋值为一个随机数 21 printf("%d\n", array[i]); //输出还未排序的数组中所有元素 22 } 23 printf("\n\n按下任意键开始排序"); 24 getchar(); //等待用户响应 25 system("cls"); //清除所有输出结果 26 27 int l = -1, u = SIZE - 1; //定义我们需要寻找最值并排序的初始区间[0,SIZE]为全集 28 for (l++; l < u; u--)//遍历已排序区间[0,l]∪[u,SIZE]的补集(即遍历未排序区间) 29 {//当l >= u时,区间(l,u)为空集,跳出循环 30 int max = 0, min = 0; //创建用于存储最大值下标和最小值下标的变量 31 for (int i = 0; i <= u; i++) //遍历数组在未排序区间中的所有元素 32 { 33 min = array[min]>array[i] ? i : min; //寻找数组在未排序区间中最小值的下标 34 max = array[max]<array[i] ? i : max; //寻找数组在未排序区间中最大值的下标 35 } 36 swap(&array[l], &array[min]); //交换数组在未排序区间中的最小值与数组在未排序区间左端点的值 37 swap(&array[u], &array[max]); //交换数组在未排序区间中的最大值与数组在未排序区间右端点的值 38 printf("数组正在排序:\n\n"); 39 for (int i = 0; i < SIZE; i++) 40 { 41 printf("%d\n", array[i]); 42 } 43 system("cls"); //清除所有输出结果 44 } 45 printf("排序后数组:\n\n"); 46 for (int i = 0; i < SIZE; i++) //遍历排序完后数组中所有元素 47 { 48 printf("%d\n", array[i]); //输出排序后的数组中所有元素 49 } 50 getchar(); //等待用户响应(防止程序自动退出) 51 return 0; 52 }
内容总结
以上是互联网集市为您收集整理的C++数组排序全部内容,希望文章能够帮你解决C++数组排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。