精华内容
下载资源
问答
  • c++数组排序
    千次阅读 多人点赞
    2018-12-09 15:57:53

    1.简单选择法
    排序过程:
    (1)首先通过n-1次比较,从n个数中找出最小的,将它与第 一个数交换—第一趟选择排序,结果最小的数被安置 在第一个元素位置上
    (2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小 的记录,将它与第二个数交换—第二趟选择排序
    (3)重复上述过程,共经过n-1趟排序后,排序结束

    #include
    using namespace std;
    #define SIZE 10
    void main()
    { int a[SIZE],i,j,k,x;
    cout<<“Input “<< SIZE<<” numbers:\n”;
    for(i=0;i< SIZE;i++)
    cin>>a[i];
    for(i=0;i< SIZE-1;i++) for(j=i+1;j< SIZE;j++)
    if(a[j]<a[k])
    k=j; if(i!=k)
    {x=a[i];a[i]=a[k];a[k]=x;}
    }
    cout<<“The sorted numbers:\n”; for(i=0;i< SIZE;i++) cout<<a[i]<<" “; }
    2.冒泡法
    排序过程:
    (1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交 换;然后比较第二个数与第三个数;依次类推,直至 第n-1个数和第n个数比较为止——第一趟冒泡排序, 结果最大的数被安置在最后一个元素位置上
    (2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被 安置在第n-1个元素位置
    (3)重复上述过程,共经过n-1趟冒泡排序后,排序结束

    #include
    using namespace std;
    // #define N 10
    const int N=10;
    void main()
    { int a[N+1],i,j,t;
    cout<<“Input “<< N<<” numbers:\n”;
    for(i=1;i<N+1;i++) cin>>a[i];
    for(j=1;j<N;j++)
    for(i=1;i<N+1-j;i++)
    if (a[i]>a[i+1])
    { t=a[i]; a[i]=a[i+1]; a[i+1]=t; }
    cout<<“The sorted numbers:\n”;
    for(i=1;i<N+1;i++) cout<<a[i]<<” ";
    }

    更多相关内容
  • C++ 数组排序

    2022-03-19 18:32:49
    大家还在为大小排序而烦恼吗?今天让我我大家解决这个问题吧! 请看串代码—— 错了—— #include <bits/stdc++.h> using namespace std; int main() { int a[10010],i,b,j; cin>>b; for(i=1;i...

    大家还在为大小排序而烦恼吗?今天让我我大家解决这个问题吧!

    请看串代码——

    错了——

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int a[10010],i,b,j;
        cin>>b;
        for(i=1;i<=b;i++)
        {
            cin>>a[i];
        }
        for(i=1;i<=b;i++)
        {
            for(j=i;j<=b;j++)
            {
                if(a[i]<a[j])
                {
                    swap(a[i],a[j]);
                }
            }
        }
        for(i=1;i<=b;i++)
        {
            cout<<a[i]<<" ";
        }
        return 0;
    }

    从大到小——

    ​
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int a[10010],i,b,j;
        cin>>b;
        for(i=1;i<=b;i++)
        {
            cin>>a[i];
        }
        for(i=1;i<=b;i++)
        {
            for(j=i;j<=b;j++)
            {
                if(a[i]>a[j])
                {
                    swap(a[i],a[j]);
                }
            }
        }
        for(i=1;i<=b;i++)
        {
            cout<<a[i]<<" ";
        }
        return 0;
    }
    
    ​

    从小到大——

    就是这么简单

    关注我!!!

    展开全文
  • c++数组排序的五种方法 方法一:冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 方法二:sort函数排序 示例:对数组2,4,5,3,1进行排序 对每一对相邻元素做同样的工作,执行完毕后,找到第一个...

    方法一:冒泡排序

    1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

    2. 对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。

    3. 重复以上的步骤,每次比较次数-1,直到不需要比较

    示例:对数组4,2,8,0,5,7,1,3,9 进行排序

    #include<iostream>
    
    using namespace std;
    
    int main() {
    
    	int arr[9] = { 4,2,8,0,5,7,1,3,9 };
    
    	for (int i = 0; i < 9 - 1; i++)
    	{
    		for (int j = 0; j < 9 - 1 - i; j++)
    		{
    			if (arr[j] > arr[j + 1])
    			{
    				int temp = arr[j];
    				arr[j] = arr[j + 1];
    				arr[j + 1] = temp;
    			}
    		}
    	}
    
    	for (int i = 0; i < 9; i++)
    	{
    		cout << arr[i] << endl;
    	}
        
    	system("pause");
    
    	return 0;
    }

    方法二:sort函数排序

    示例:对数组2,4,5,3,1进行排序


    sort函数的算法效率相当于快排。

    sort 函数默认的是进行升序排序

    有两种方法可以进行降序,可自由选择 

    1. 使用greater<int>()

    如果排序其他类型可更改参数


    2. 自定义一个比较大小的函数,将大的排在前面

    方法三:用交换函数swap排序

    … …

    if(a>b) swap(a,b);

    if(a>c) swap(a,c);

    if(b>c) swap(b,c);

    … …

    方法四:快速排序

    1. 找到分界点x,q[L],q[(L+R)/2],q[R]
    2. 左边所有数Left<=x,右边所有数Right>=x
    3. 递归排序Left,递归排序Right 

    快速排序算法模板:

    void quick_sort(int q[], int l, int r)
    {
        if (l >= r) return;
        
        int i = l - 1, j = r + 1, x = q[l+r>>1]; //l+r>>1的意思是l+r的值除以2取整
        while (i < j)
        {
            do i ++ ; while (q[i] < x);
            do j -- ; while (q[j] > x);
            if (i < j) swap(q[i], q[j]);
            else break;
        }
        quick_sort(q, l, j), quick_sort(q, j + 1, r);
    }

    方法五:归并排序

    1. 确定分界点:mid=(l+r)/2
    2. 递归排序Left,递归排序Right
    3. 归并 —— 合二为一  

    归并排序算法模板
     

    void merge_sort(int q[], int l, int r)
    {
        if (l >= r) return;
        
        int mid = l + r >> 1;
        merge_sort(q, l, mid);
        merge_sort(q, mid + 1, r);
        
        int k = 0, i = l, j = mid + 1;
        while (i <= mid && j <= r)
            if (q[i] < q[j]) tmp[k ++ ] = q[i ++ ];
            else tmp[k ++ ] = q[j ++ ];
        
        while (i <= mid) tmp[k ++ ] = q[i ++ ];
        while (j <= r) tmp[k ++ ] = q[j ++ ];
        
        for (i = l, j = 0; i <= r; i ++, j ++ ) q[i] = tmp[j];
    }
    

    展开全文
  • C++数组排序实现

    千次阅读 2019-10-19 19:07:10
    C++数组排序实现(持续更新中) #include<iostream> using namespace std; void jiaohuan(int *a,int *b) { int temp; temp = *a; *a = *b; *b = temp; } //冒泡排序 void paixu1(int num[],int n) { ...

    C++数组排序实现

    #include<iostream>
    using namespace std;
    
    void jiaohuan(int *a,int *b)
    {
        int temp;
        temp = *a;
        *a = *b;
        *b = temp;
    }
    
    //冒泡排序
    void paixu1(int num[],int n)
    {
        int i,j;
        for(i=0;i<n;i++)
        {
            for(j=0;j<n-i-1;j++)
            {
                if(num[j]>num[j+1])
                    jiaohuan(&num[j],&num[j+1]);
            }
        }
        cout<<endl<<"冒泡排序:";
        for(i=0;i<n;i++)
            cout<<num[i]<<',';
    }
    
    //选择排序
    void paixu2(int num[],int n)
    {
        int i,j,minx;
        for(i=0;i<n-1;i++)
        {
            minx=i;
            for(j=i+1;j<n;j++)
            {
                if(num[j]<num[minx])
                    minx = j;
            }
            jiaohuan(&num[i],&num[minx]);
        }
        cout<<endl<<"选择排序:";
        for(i=0;i<n;i++)
            cout<<num[i]<<',';
    }
    
    //插入排序
    void paixu3(int num[],int n)
    {
        int i,j,m;
        for(i=1;i<n;i++)
        {
            m = i;
            while(m!=0&&num[m]<num[m-1])
            {
                jiaohuan(&num[m],&num[m-1]);
                m -= 1;
            }
        }
        cout<<endl<<"插入排序:";
        for(i=0;i<n;i++)
        cout<<num[i]<<',';
    }
    
    int main()
    {
        int num[10]={14,-165,34,53,24,-3,9,-34,2,3};
        int num1[10]={14,-165,34,53,24,-3,9,-34,2,3};
        int num2[10]={14,-165,34,53,24,-3,9,-34,2,3};
        int num3[10]={14,-165,34,53,24,-3,9,-34,2,3};
        for(int i=0;i<10;i++)
            cout<<num[i]<<',';
        paixu1(num1,10);
        paixu2(num2,10);
        paixu3(num3,10);
        return 0;
    }
    

    结果如下:
    在这里插入图片描述

    展开全文
  • C++ 数组排序返回下标

    千次阅读 2020-09-10 10:18:38
    C++ 数组排序返回下标 # scores为std::vector<float> 型数组 std::vector<size_t> idx(scores.size()); std::iota(idx.begin(), idx.end(), 0); std::sort(idx.begin(), idx.end(), [&scores](size...
  • C++数组排序

    2019-03-16 20:36:00
    1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<windows.h>... 5 #define SIZE 5 //数组中元素的数量 ... 7 void swap(int *p1, int *p2) //交换数组中的两个元素 8 { 9 int temp = *...
  • c++数组快速排序

    2021-04-17 11:30:44
    c++数组快速排序 /*从小到大 快速排序*/ #include <iostream> using namespace std; void quickSort(int num[],int left,int right) { int l = left, r = right; int temp = num[l]; while(l < r) { ...
  • 数组排序——c++

    千次阅读 2022-03-17 08:51:51
    循环输入5个数据,进行降序排序后输出结果冒泡排序选择排序逆序排序 冒泡排序 1.冒泡排序的思路: 每轮排序将未排序中的最大值或最小值冒上去。 每轮比较是通过相邻值的比较交换来将最小值或最大值冒泡冒上去。 如...
  • c++ 数组排序(选择, 冒泡, 插入,快速)

    万次阅读 多人点赞 2016-09-03 12:18:50
    #include using namespace std; //冒泡排序 void bubbleSort(int arr[], int n) { for(int i = 0;i ;i++){ //比较两个相邻的元素 for(int j = 0;j ;j++){ if(arr[j] > arr[j+1]){
  • c++实现数组排序

    千次阅读 2020-04-01 10:25:09
    话不多说上代码 using namespace std; //插入排序 void crpx(int a[],int n){ for(int i=1;i<n;i++){ int temp=a[i]; int j=i; while(j>0&&temp<a[j-1]){ a[j]=a[j...
  • C++实现数组排序

    千次阅读 2020-02-02 11:55:37
    代码如下,本人也还在大学学习中,请多指教! #include<iostream> using namespace std; void sort(int A[], int n) { int c = 0, t; for (int i = 1; i < n; i++) { if (A[i] >... A[c] = t...
  • C++数组快速排序

    千次阅读 2019-04-04 10:28:43
    C++数组快速排序 void swap(int&a, int &b) { //交换元素 int temp = a; a = b; b = temp; } void QuickSort(int nums[], int start, int end) { if (start > end)return; //边界情况1:上一次的排序...
  • 有时候我们需要对数组或者其他数据结构按照某一指定的元素排序, 比如在使用结构体时,如果要按照某一特定元素排序,可以使用本文的方法
  • 例:输入一个一维数组,按从小到大排列输出 #include<iostream> #include<algorithm> using namespace std; int main() { int N; cin>>N; int a[N]; { for(int i=0;i<N;i++) cin>&...
  • 将新的数字与已经排序好的数组中的数字一一比较,直到找到插入点,然后将插入点以后的数字都向后移动一个单位(a[i+1]=a[i]),然后将数据插入即可
  • 数组C++语言重要的数据结构,对它的一些基本操作要熟练掌握。那么,今天我们就来讨论,怎么使用冒泡排序的方法,把数组元素从小到大重新排列? 案例 题目描述 对数组的元素按从小到大进行排序。 有两行 第一行有一...
  • 利用函数模板进行任意内置数据类型的数组排序
  • 机械工程学院,C++课程设计题目,数组大小排序
  • C++数组元素 排序 去重

    千次阅读 2016-10-16 20:16:05
    说明 注释都写在程序中了 /**************************************************...// 程序:排序去重数组中数字 // 作者:执剑天涯 // 日期:2016-10-16 // 环境:msvc2012
  • C++编程:数组的选择排序

    千次阅读 2022-03-11 09:24:50
    数组的选择排序,即首先找出这十个数中最小的一个,放在第一个位置,然后找出剩下9个数中最小的那个数,放在第二个位置,以此排好序。 关于如何找出十个数中最小的那个,可以用for循环遍历数组,令第一个值为最小值...
  • C++数组简单排序并返回序号

    千次阅读 2018-09-26 16:23:34
    #include&lt;vector&gt; #include&lt;algorithm&gt; #include&lt;iostream&... double d1[10] = { 11, 2, 8, 4, 15, 25, 45, 6, 19, 22 };... double d2[10] = { 0,1,2,3,4,5...
  • 下面小编就为大家带来一篇c++实现对输入数组进行快速排序的示例(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • sort函数数组排序c++方法)

    万次阅读 多人点赞 2018-11-28 16:18:35
    例如:a[50]={2,3,5,1,-1},想让它按照从小到大的顺序排列,那么就可以这么写,sort(a,a+5),然后数组就会变成{-1,1,2,3,5}。 具体代码如下: #include&lt;cstdio&gt; #include&lt;algorithm&gt; ...
  • C++ 冒泡排序数组的应用)

    千次阅读 2020-07-30 17:14:56
    所谓冒泡排序: 1.比较相邻的元素,如第一个比第二个大,就交换他们两个 2.每次交换完之后都能确定相应的最大值。 3.重复以上的步骤,每次比较次数-1 第一次比较8次 第二次比较7次,因为最后一个已经比较出来是最大...
  • C++数组的冒泡排序

    千次阅读 2019-06-10 10:59:11
    按降序排序时,若一组整数放在数组a[0],a[1],……,a[n-1]中, 冒泡排序法是采用相邻元素比较的方法所以第一轮比较是让a[0]和a[1]比较 如果a[0]大于a[1]就交换数组存放的数据,反之则不交换,然后再让a[1]和 a[2]进行...
  • 数组排序返回数值在原数组中的下标在matlab中根本就不是问题,一个sort函数解决:[B,IX] = sort(A,...)其中A为排序前的数组,B为排序后的数组,IX为排序后的下标。可在C++中就没有这么简单了,找遍了所有可能的函数...
  • C++ sort()排序详解

    万次阅读 多人点赞 2020-05-05 22:00:36
    本文对C++中的sort()做了一个比较详细的说明,包括为什么选择使用sort()、sort()函数的实现原理、sort()的使用方法等等。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 172,106
精华内容 68,842
关键字:

c++数组排序