zoukankan      html  css  js  c++  java
  • 排序算法

    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("这是冒泡排序
    ");
    	printf("请输入一串整数:
    ");
    	for(n=0;scanf("%d",&x) && x!=END;array[n++]=x){}
    	BubbleSort();
    	for(x=0;x<n;printf("%d%c",array[x]," 
    "[x+1==n]),++x){}
    	printf("所用的关键字比较次数:%d
    ",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结尾:
    ");
    	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("
    ");
    	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
    ", cnt); 
    	 for (x = 0; x < n; printf("%d%c", array[x], " 
    "[x + 1 == n]), ++x) {} 
    	 return 0; 
    }
    
  • 相关阅读:
    H264码流解析及NALU
    pflua:用Lua编写的高性能网络包过滤工具箱
    最新版FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用简介
    JNI和NDK的区别
    按两次回退键退出系统
    在当前界面停留几秒然后跳到另一个界面
    解决ScrollView 与ListView共存显示不完全的问题
    设置ListView每条数据之间的间隔
    通过布局文件来显示ListView内容并注册 ListView事件
    Android 改变标题栏的背景色
  • 原文地址:https://www.cnblogs.com/snail-gao/p/11774280.html
Copyright © 2011-2022 走看看