精华内容
下载资源
问答
  • 对n个数据进行从小到大排序
    千次阅读
    2015-03-29 12:51:47
    #include <iostream>
    using namespace std;


    template <class T>
    void sort(T* a, int n)
    {
     int t;
     T temp; 
     for (int i=0; i<n-1; i++) 
     { 
      t=i;
      for (int j=i+1; j<n; j++) 
      { 
       if (*(a+t)>*(a+j))
        t=j; 
      } 
      temp=*(a+i);
      *(a+i)=*(a+t); 
      *(a+t)=temp; 
     }
    }


    static float arr0[6]={2.0,65.0,9.0,78.0,88.0,-2.0};
    static double arr1[6]={558.0,999.0,123.0,222.0,55.0,456.0};
    static int arr2[6]={123,456,789,654,321,5};


    void main()
    {
     cout<<"float exp."<<endl;
     for (int i=0; i<6; i++)
     {
      cout<<arr0[i]<<" ";
     }
     cout<<endl;
     sort(arr0, 6);
     for (i=0; i<6; i++)
     {
      cout<<arr0[i]<<" ";
     }
     cout<<endl;


     cout<<"double exp."<<endl;
     for (i=0; i<6; i++)
     {
      cout<<arr1[i]<<" ";
     }
     cout<<endl;
     sort(arr1, 6);
     for (i=0; i<6; i++)
     {
      cout<<arr1[i]<<" ";
     }
     cout<<endl;


     cout<<"int exp."<<endl;
     for (i=0; i<6; i++)
     {
      cout<<arr2[i]<<" ";
     }
     cout<<endl;
     sort(arr2, 6);
     for (i=0; i<6; i++)
     {
      cout<<arr2[i]<<" ";
     }
     cout<<endl;
    }
    更多相关内容
  • 这里用了快速排序法。 #include <iostream> using namespace std; void swap(int* a, int* b); void sort1(int* array, int n); void sort2(int* array, int left, int right); void swap(float* a, float*...

    1.用重载函数实现。

    这里用了快速排序法。

    #include <iostream>
    using namespace std;
    
    void swap(int* a, int* b);
    void sort1(int* array, int n);
    void sort2(int* array, int left, int right);
    void swap(float* a, float* b);
    void swap(double* a, double* b);
    void sort1(float* array, int n);
    void sort1(double* array, int n);
    void sort2(float* array, int left, int right);
    void sort2(double* array, int left, int right);
    
    int main(void) {
        int  n;
        cin >> n;
        cout << "输入n个数:n=" << n << endl;
        //  1代表整数, 2代表单精度浮点型float   , 3代表双精度浮点型double
        int co;
        cout << "类型为co=" ;
        cin >> co;
        if (co == 1) {
            cout << ",整数" << endl;
            int x;
            int* num = new int[n];
            for (int i = 0; i < n; i++) {
                cin >> x;
                num[i] = x;
            }
            sort1(num, n);
            for (int i = 0; i < n; i++) {
                cout << num[i] << "  ";
            }
            delete[] num;
        }
    
        if (co == 2) {
            cout << ",单精度浮点型" << endl;
            float x;
            float* num = new float[n];
            for (int i = 0; i < n; i++) {
                cin >> x;
                num[i] = x;
            }
            sort1(num, n);
            for (int i = 0; i < n; i++) {
                cout << num[i] << "  ";
            }
            delete[] num;
        }
    
        if (co == 3) {
            cout << ",双精度浮点型" << endl;
            double x;
            double* num = new double[n];
            for (int i = 0; i < n; i++) {
                cin >> x;
                num[i] = x;
            }
            sort1(num, n);
            for (int i = 0; i < n; i++) {
                cout << num[i] << "  ";
            }
            delete[] num;
        }
    
        return 0;
    
    }
    
    
    void swap(int* a, int* b) {
        int temp;
        temp = *b;
        *b = *a;
        *a = temp;
    }
    
    void swap(float* a, float* b) {
        float temp;
        temp = *b;
        *b = *a;
        *a = temp;
    }
    
    void swap(double* a, double* b) {
        double temp;
        temp = *b;
        *b = *a;
        *a = temp;
    }
    
    void sort1(int* array, int n) {
        sort2(array, 0, n - 1);
    }
    
    void sort1(float* array, int n) {
        sort2(array, 0, n - 1);
    }
    
    void sort1(double* array, int n) {
        sort2(array, 0, n - 1);
    }
    void sort2(int* array, int left, int right) {
        int left_index = left;
        int right_index = right;
        int pivot = array[(left + right) / 2];
    
        while (left_index <= right_index) {
            for (; array[left_index] < pivot; left_index++);
            for (; array[right_index] > pivot; right_index--);
            if (left_index <= right_index) {
                swap(&array[left_index], &array[right_index]);
                left_index++;
                right_index--;
            }
        }
    
        
        if (right_index > left) {
            sort2(array, left, right_index);
        }
        if (left_index < right) {
            sort2(array, left_index, right);
        }
    }
    
    void sort2(float* array, int left, int right) {
        int left_index = left;
        int right_index = right;
        float pivot = array[(left + right) / 2];
    
        while (left_index <= right_index) {
            for (; array[left_index] < pivot; left_index++);
            for (; array[right_index] > pivot; right_index--);
            if (left_index <= right_index) {
                swap(&array[left_index], &array[right_index]);
                left_index++;
                right_index--;
            }
        }
    
        if (right_index > left) {
            sort2(array, left, right_index);
        }
        if (left_index < right) {
            sort2(array, left_index, right);
        }
    }
    
    void sort2(double* array, int left, int right) {
        int left_index = left;
        int right_index = right;
        double pivot = array[(left + right) / 2];
    
        while (left_index <= right_index) {
            for (; array[left_index] < pivot; left_index++);
            for (; array[right_index] > pivot; right_index--);
            if (left_index <= right_index) {
                swap(&array[left_index], &array[right_index]);
                left_index++;
                right_index--;
            }
        }
    
        if (right_index > left) {
            sort2(array, left, right_index);
        }
        if (left_index < right) {
            sort2(array, left_index, right);
        }
    }

    2.用函数模版

    #include <iostream>
    using namespace std;
    
    template <class T>
    void swap(T* a, T* b) {
        T temp;
        temp = *b;
        *b = *a;
        *a = temp;
    }
    template <class T>
    void sort2(T* array, int left, int right) {
        int left_index = left;
        int right_index = right;
        T pivot = array[(left + right) / 2];
    
        while (left_index <= right_index) {
            for (; array[left_index] < pivot; left_index++);
            for (; array[right_index] > pivot; right_index--);
            if (left_index <= right_index) {
                swap(&array[left_index], &array[right_index]);
                left_index++;
                right_index--;
            }
        }
    
        if (right_index > left) {
            sort2(array, left, right_index);
        }
        if (left_index < right) {
            sort2(array, left_index, right);
        }
    }
    template <class T>
    void sort1(T* array, int n) {
        sort2(array, 0, n - 1);
    }
    
    
    
    int main(void) {
        int  n;
        cin >> n;
        cout << "输入n个数:n=" << n << endl;
        //  1代表整数, 2代表单精度浮点型float   , 3代表双精度浮点型double
        int co;
        cout << "类型为co=";
        cin >> co;
    
        if (co == 1) {
            cout << ",整数" << endl;
            int x;
            int* num = new int[n];
            for (int i = 0; i < n; i++) {
                cin >> x;
                num[i] = x;
            }
            sort1(num, n);
            for (int i = 0; i < n; i++) {
                cout << num[i] << "  ";
            }
            delete[] num;
        }
    
        if (co == 2) {
            cout << ",单精度浮点型" << endl;
            float x;
            float* num = new float[n];
            for (int i = 0; i < n; i++) {
                cin >> x;
                num[i] = x;
            }
            sort1(num, n);
            for (int i = 0; i < n; i++) {
                cout << num[i] << "  ";
            }
            delete[] num;
        }
    
        if (co == 3) {
            cout << ",双精度浮点型" << endl;
            double x;
            double* num = new double[n];
            for (int i = 0; i < n; i++) {
                cin >> x;
                num[i] = x;
            }
            sort1(num, n);
            for (int i = 0; i < n; i++) {
                cout << num[i] << "  ";
            }
            delete[] num;
        }
    
        return 0;
    }
    

    默默无闻的菜鸟小白。。。

    展开全文
  • C++_对n个数据进行从小到大排序

    千次阅读 2021-09-09 13:59:35
    C++_对n个数据进行从小到大排序 #include<iostream> using namespace std; /** * 对n个数据进行从小到大排序 * @project C++_Demo * @author CaoPengCheng * @date 2021-09-09 * @version 1.0.0 */ ...

    C++_对n个数据进行从小到大的排序

    #include<iostream>
    using namespace std;
    /**
     * 对n个数据进行从小到大的排序
     * @project C++_Demo
     * @author CaoPengCheng
     * @date 2021-09-09
     * @version 1.0.0
     */
    class Number{
    private:
    	int n;
    	int a[100];
    public:
    	Number(){
    	}
    	Number(int N){
    		n=N;
    	}
    	void sort(){
    		for(int i=0;i<n-1;i++) 
    			for(int j=0;j<n-i-1;j++) 
    				if(a[j]>a[j+1]) {
    					int temp = a[j];
    					a[j] = a[j+1];
    					a[j+1] = temp;
    				}
    	}
    	void input(){
    		cout<<"intput a[]:";
    		for(int i=0;i<n;i++){
    			cin>>a[i];
    		}
    	}
    	void printf(){
    		cout<<"a[]=";
    		for(int i=0;i<n;i++)
    			cout<<a[i]<<" ";
    	}
    	void setN(int N){
    		n=N;
    	}
    	int getN(){
    		return n;
    	}
    };
    int main(){
    	Number number;
    	int n;
    	cout<<"input N:";
    	cin>>n;
    	number.setN(n);
    	cout<<"N is:"<<number.getN()<<endl;
    	number.input();
    	number.printf();
    	cout<<endl<<"sort ";
    	number.sort();
    	number.printf();
    	cout<<endl;
    	return 0;
    }
    

    在这里插入图片描述

    展开全文
  • 源程序代码: #include <iostream> using namespace std;...int sort(int* p, int n) { for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { if (p[i] > p[j]) { int x; ..
    
    源程序代码:
    #include <iostream>
    using namespace std;
    int sort(int* p, int n)
    {
        for (int i = 0; i < n; i++)
        {
            for (int j = i; j < n; j++)
            {
                if (p[i] > p[j])
                {
                    int x;
                    x = p[j];
                    p[j] = p[i];
                    p[i] = x;
                }
            }
        }
        for (int k = 0; k < n; k++)
            cout << p[k] << " ";
        return 0;
    }
    float sort(float* p, int n)
    {
        for (int i = 0; i < n; i++)
        {
            for (int j = i; j < n; j++)
            {
                if (p[i] > p[j])
                {
                    float x;
                    x = p[j];
                    p[j] = p[i];
                    p[i] = x;
                }
            }
        }
        for (int k = 0; k < n; k++)
            cout << p[k] << " ";
        return 0;
    }
    double sort(double* p, int n)
    {
        for (int i = 0; i < n; i++)
        {
            for (int j = i; j < n; j++)
            {
                if (p[i] > p[j])
                {
                    double x;
                    x = p[j];
                    p[j] = p[i];
                    p[i] = x;
                }
            }
        }
        for (int k = 0; k < n; k++)
            cout << p[k] << " ";
        return 0;
    }
    int main()
    {
        int a, n;
        cout << "您需要比较什么类型的数:\n1.整型\n2.单精度\n3.双精度" << endl << "输入类型前的编号:" << endl;
        cin >> a;
        cout << "请输入您需要比较数据的个数:" << endl;
        cin >> n;
        cout << "请输入" << n << "个需要比较的数\n";
        if (a == 1)
        {
            int* p = new int[n];
            for (int i = 0; i < n; i++)
                cin >> p[i];
            sort(p, n);
        }
        if (a == 2)
        {
            double* p = new double[n];
            for (int i = 0; i < n; i++)
            cin >> p[i];
            sort(p, n);
        }
        if (a == 3)
        {
            float* p = new float[n];
            for (int i = 0; i < n; i++)
            cin >> p[i];
            sort(p, n);
        }
        return 0;
    }
    

    运行结果截图:

     

    展开全文
  • 用函数重载实现: #include <iostream> using namespace std;...int sort(int* p, int n) { for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { if (p[i] > p[j]) { int x;
  • #include using namespace std;...void sort(T* a, int n) {  int t;  T temp;   for (int i=0; i  {   t=i;  for (int j=i+1; j  {   if (*(a+t)>*(a+j))  t=j;   }   temp=*(a+
  • #include  #include using namespace std; int main() { int pl(int *q,int n); double pl(double *p,int n); float pl(float *p,int n);...cout请输入您需要比较数据的个数:" cin>>n; cout请输入
  • 快速排序法:通过一趟排序将要排序数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据要小,然后再按此方法这两部分数据分别进行快速排序(此过程可以用到函数递归的方法)。 #include #...
  • //用冒泡排序法将输入的n个进行从小到大排列 /* 我们写一函数,引用函数解决问题;这函数最重要的思想如下:1:每次将相邻的两数对比,将小的调到前面 m=a[j]; a[j]=a[j-1]; a[j-1]=m; 就是这一...
  • 编写程序,使用插入排序法将n个从小到大进行排序。(用指针实现) main函数 测试 测试输入 1 2 7 6 8 5 4 2 0 输出 1 2 2 4 5 6 7 8
  • 用冒泡排序对N个从小到大排序

    万次阅读 多人点赞 2018-11-02 15:11:48
    #include &lt;stdio.h&...#define N 5 int main() { int a[N],i,j,t; for(i=0;i&lt;N;i++) scanf("%d",&amp;a[i]); for(i=1;i&lt;=N-1;i++) for(j=0;j&lt;N-i;j++...
  • /*用选择法数组中的n个元素按从小到大的顺序进行排序*/ #include <stdio.h> #define N 20 void fun(int a[], int n) { int i, j, t, p; for (j = 0; j < n - 1; j++) { p = j; for (i = j; i <...
  • #include <iostream>...void sort(int a[],int n) { int temp; for(int i=0;i<n;i++) for(int j=i+1;j<n;j++) { if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } } void ...
  • 将数组a中的m元素从小到大排序; (3)定义函数void output(int a[],int m); 依次输出数组a中的m元素; (4)在主函数中输入一整数,并输入范围进行合法化的判断,输入的数据进行处理,输出处理结果。
  • 【程序设计】--------------------------------------------------功能:编写函数用冒泡排序法对数组中的数据进行从小到大排序。*********Begin**********和**********End*********...【程序设计】---------------...
  • 用选择法10整数从小到大排序

    千次阅读 2020-12-18 01:51:11
    展开全部用选择法10整数排序,用scanf输入。你用下62616964757a686964616fe78988e69d8331333366303235面这种输入方法就可以了。# includeint main(){int i,j,min,temp,a[10];printf("enter data:\n");for (i=0;i...
  • N个从小到大排序

    千次阅读 2019-12-16 19:49:24
    输入一正整数NN个整数,将它们按从小到大的顺序进行排序后输出。 输入 输入一正整数N(1≤N≤100)和N个整数,用空格分隔。 输出 将这N个数按从小到大的顺序重新输出 样例输入 10 -4 5 12 88 23 -9 2 0 8 10 5...
  • 含有N整数的数组,使用堆排序让其由小到大输出 样例输入 6 43 2 56 1 22 9 样例输出 1 2 9 22 43 56 堆排序 含有N整数的数组,使用堆排序让其由小到大输出 样例输入 6 43 2 56 1 22 9 样例输出 1 2 9 ...
  • 整体排序的思路: 1.找到输入数组中的最小元素 2.把找到的最小元素赋给另一空数组 3.删除刚找到的最小元素...//int类型数据排序 void sort(int n,int a[100],int b[100]) { int i,j,k; int m=n; cout<<...
  • 课程的随堂作业,C语言的,用dev就能运行,萌新代码,勿喷,仅仅帮助不想写作业的朋友方便一下,反正老师也不会仔细检查的
  • 冒泡排序对N个数由小到大排序

    千次阅读 2019-03-29 21:40:00
    #include <stdio.h> #define N 5 void main() { int a[N]; int i,j,temp;... printf("请输入待排序数据: \n"); for (i=0;i<N;i++) scanf("%d",&a[i]); for (i=1;i&l...
  • 要求:如输入141812151015926输出的每次的排序结果是i=1:118121510145926i=2:121215101459186i=3:125151014129186i=4:125610141291815i=5:125691412101815i=6:125691012141815i...要求:如输入14 18 12 15 10 ...
  • 利用冒泡算法10数字进行从小到大排序 #include <stdio.h> int main() { int a[10]; int i,j,t; printf("请输入10数字:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); ...
  • //任意输入5个数据从小到大排序 #include <stdio.h> int main(int argc,char const *argv[]) { int len = 5; int temp; printf("请输入你要输入数字的的个数:\n"); scanf("%d",&len); int arr...
  • 从键盘输入n个数 按从小到大的顺序排列输出

    万次阅读 多人点赞 2020-10-11 13:43:26
    printf("请输入10数:\n"); for(int i=0;i<=9;i++) { scanf("%d",&a[i]); } for(int j=0;j<=8;j++) for(int i=0;i<=8-j;i++) { if(a[i]>a[i+1]) { int
  • /* * @Description: * @Version: 1.0 * @Author: Jiaoz * @Email: jiaozzzzzzzz@qq.com * @Date: 2021-11-09 18:53:07 */ #include<iostream> using namespace std;... pa,int n){ .
  • 用python实现冒泡算法,给你一包含若干值的列表,将他们从小到大排序输出
  • #include #include &lt;time.h&gt; using namespace std; ...void srandData(int *, int );...//选择排序具体实现函数 void swap(int *, int *);//两数字实现交换的函数 void display(int *, int );...
  • 冒泡排序

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,368
精华内容 45,747
关键字:

对n个数据进行从小到大排序