• 选择排序


    题目描述:
    声明一个10个元素的整型数组(用随机函数赋值),
    用选择法对数组进行排序,要求用函数完成

    #include <iostream>
    #include<stdlib.h>
    #include<time.h>
    
    void sort(int a[],int n){
    	int i,j,max,max_k,temp;
    	for(i=0;i<n-1;i++){
    		max=a[i];
    		max_k=i;
    		for(j=i;j<n;j++){
    			if(a[j]>max){
    				max=a[j];
    				max_k=j;
    			}
    		}
    		temp=a[i];
    		a[i]=a[max_k];
    		a[max_k]=temp;
    	}
    }
    int main(void){
    	int a[10],i;
    	srand(time(NULL));
    	for(i=0;i<10;i++)
    		a[i]=rand()%90+10;
    	std::cout<<"数组元素为:"<<std::endl;
    	for(i=0;i<10;i++)
    		std::cout<<a[i]<<' ';
    	std::cout<<std::endl;
    	sort(a,10);
    	std::cout<<"选择法排序后的数组为:"<<endl;
    	for(i=0;i<10;i++)
    		std::cout<<a[i]<<' ';
    	std::cout<<std::endl;	
    }
    

    运行结果:

    指针实现:

    #include<iostream>
    #include<stdlib.h> 
    #include<time.h>
    
    void sort(int *p,int n){
    	int i,j,k,t;
    	for(i=0;i<n-1;i++){
    		k=i;
    		for(j=i+1;j<n;j++){
    			if(*(p+j)>*(p+k))
    				k=j;
    		}
    		t=*(p+k);
    		*(p+k)=*(p+i);
    		*(p+i)=t;
    	}
    }
    int main(void){
    	int a[10],*p;
    	p=a;
    	srand(time(NULL));
    	for(p=a;p<a+10;p++){
    		*p=rand()%90+10;
    	}
    	std::cout<<"数组为"<<std::endl;
    	for(p=a;p<a+10;p++)
    		std::cout<<*p<<' ';
    	std::cout<<std::endl;
    	sort(a,10);
    	std::cout<<"选择排序:"<<std::endl;
    	for(p=a;p<a+10;p++)
    		std::cout<<*p<<' ';
    	std::cout<<std::endl; 
    } 
    

    运行结果:

  • 相关阅读:
    Liskov替换原则
    OCP开放封闭原则
    SRC单一职责原则
    什么是敏捷设计
    [WCF编程]13.并发:服务并发模式
    [WCF编程]12.事务:服务事务编程(下)
    [WCF编程]12.事务:服务事务编程(上)
    [WCF编程]12.事务:Transaction类
    [WCF编程]12.事务:事务传播
    [WCF编程]12.事务:事务协议与管理器
  • 原文地址:https://www.cnblogs.com/izzwhf/p/10707520.html
Copyright © 2020-2023  润新知