A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 4B青年 中级黑马   /  2015-7-5 19:41  /  1030 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. #include <stdio.h>
  2. //选择排序的第一种方法,跟冒泡排序法有点像,两两交换
  3. void selectSort(int arr[],int len){
  4.     //写双重循环
  5.     int temp;
  6.     for (int i=0; i<len-1; i++) {
  7.         for (int j=i+1; j<len; j++) {
  8.             //交换的条件
  9.             if(arr[i]>arr[j]){
  10.                 //让arr[i] 和 arr[j]  进行交换
  11.                 temp = arr[i];
  12.                 arr[i] = arr[j];
  13.                 arr[j] = temp;
  14.             }
  15.         }
  16.     }
  17. }
  18. //选择排序的第二种方法,只交换一次,因此更高效
  19. void otherSort(int arr[],int len){
  20.     //写双重循环
  21.     int temp,min;
  22.     for (int i=0; i<len; i++) {
  23.         //每次假设a[i]是最小值
  24.         min = i;
  25.         for (int j=i+1; j<len; j++) {
  26.             if (arr[j]<arr[min]) {
  27.                 //找到最小的那个元素的下标
  28.                 min = j;
  29.             }
  30.         }
  31.         //如果找不到比arr[i]小的数,就不再交换
  32.         if (i != min) {
  33.             //将第i+1个元素与最小的元素交换
  34.             temp = arr[i];
  35.             arr[i] = arr[min];
  36.             arr[min] = temp;
  37.         }
  38.     }
  39. }
  40. int main(int argc, const char * argv[]) {
  41.     //定义一个数组
  42.     int a[10]={23,12,4,67,20,100,21,45,3,28};
  43.     int b[10]={23,12,4,67,20,100,21,45,3,28};
  44.     //目的排序
  45.     selectSort(a, 10);
  46.     otherSort(b, 10);
  47.     //遍历输出数组
  48.     for (int i=0; i<10; i++) {
  49.         printf("%d\t",a[i]);
  50.     }
  51.     printf("\n");
  52.     for (int i=0; i<10; i++) {
  53.         printf("%d\t",b[i]);
  54.     }
  55.     return 0;
  56. }
复制代码

5 个回复

倒序浏览
赞一下。。。
回复 使用道具 举报
牛掰!!!!!!!
回复 使用道具 举报
这个有点意思啊
回复 使用道具 举报
不错,顶顶顶
回复 使用道具 举报
赵云18235802528 来自手机 中级黑马 2015-7-6 07:12:33
地板
赞赞赞赞赞赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马