码迷,mamicode.com
首页 > 编程语言 > 详细

排序算法

时间:2019-10-31 23:25:52      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:次数   sort   tmp   print   fine   ==   冒泡   排序算法   输入   

1.编一C程序,它能对输入的一串整数(不多于1000个,以-9999为结束标记,-9999不参与排序),
进行冒泡排序(从小到大排序),输出排序结果和所用的关键字比较次数。

#include<stdio.h>
#define END -9999
#define MAX_SIZE 1005
int array[MAX_SIZE],n;
int cnt;
void BubbleSort(){
    int i,j;
    int temp;
    for(i=0;i<n-1;i++){
        for(j=0;j<n-i-1;j++,++cnt){
            if(array[j] > array[j+1]){
                temp = array[j];
                array[j]= array[j+1];
                array[j+1] = temp;
            }
        }
    }
}


int main(){
    int x;
    printf("这是冒泡排序\n");
    printf("请输入一串整数:\n");
    for(n=0;scanf("%d",&x) && x!=END;array[n++]=x){}
    BubbleSort();
    for(x=0;x<n;printf("%d%c",array[x]," \n"[x+1==n]),++x){}
    printf("所用的关键字比较次数:%d\n",cnt);
    return 0;
}

2.编一C程序,它能读入一串(n个)整数(n<1000,以-9999为结束标记),并判断第n个整数(即-9999的前一个)在前(n-1)个整数中出现的次数,
再输出该次数(输入时,两个相邻的整数用空格隔开)。

#include<stdio.h>
#define MAX_SIZE 1005
#define END -9999
int array[MAX_SIZE],n;
int main(){
    int x,num=0;
    printf("请输入一串数字,以-9999结尾:\n");
    for(n=0;scanf("%d",&x) && x!=END;array[n++]=x){}
    for(x=0;x<n;x++){
        if(array[x] == array[n-1]){
            num++;
        }
    }
    printf("%d出现的次数为%d",array[n-1],num);
    printf("\n");
    return 0;
}

3.编一C程序,它能对输入的一串整数(不多于1000个,以-9999为结束标记,-9999不参与排序),进行直接插入排序(从小到大排序),
输出排序结果和所用的关键字比较次数。(输入时,两个相邻的整数用空格隔开)。

#include<stdio.h>
#define END -9999 
#define MAX_SIZE 1005 
int array[MAX_SIZE], n; 
int cnt; 
void InsertSort() { 
    int i, j, k, tmp; 
    for (cnt = 0, i = 1; i < n; ++i) {
        for (j = i - 1; j >= 0 && array[j] > array[i]; ++cnt, --j) {} 
        tmp = array[i]; 
        for (k = i; k > j + 1; array[k] = array[k - 1], --k) {} 
        array[j + 1] = tmp; 
    } 
}
int main() { 
     int x; for (n = 0; scanf("%d", &x) && x != END; array[n++] = x) {}
     InsertSort(); printf("%d\n", cnt); 
     for (x = 0; x < n; printf("%d%c", array[x], " \n"[x + 1 == n]), ++x) {} 
     return 0; 
}

排序算法

标签:次数   sort   tmp   print   fine   ==   冒泡   排序算法   输入   

原文地址:https://www.cnblogs.com/snail-gao/p/11774280.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!