hyfm.net
当前位置:首页 >> C语言一维数组排序详解 >>

C语言一维数组排序详解

应该是因为输出的时候最后一个数字之后不需要空格,输出函数改为如下:void PrintArr(int a[], int n) { int m; printf("%d", a[0]); for(m=1 ; m<n ; m++) printf(" %d",a[m]); printf("\n"); } 另外数组的定义大小不能为变量,将int a[n];改为int a[20];

额,你要那一种排序,我写了几个简单的排序效率不高,O(n^2)1.插入法#include<stdio.h>#include<stdlib.h>#define MAX 32767int a[MAX];void swap(int &a,int &b){ int t=a; a=b; b=t;}void InsertSort(int n){ for(int i=1;i<n;i++) { for(int j=i;j>0&&a[j]<a[j-

int a[100]; int i,j;//Easy bubble sort for(i=0; i<99; ++i) { for(j=i+1; j<100; ++j) { if(a[i]<a[j]) { //swap a[i] and a[j] a[i]^=a[j]; a[j]^=a[i]; a[i]^=a[j]; } } }使用算法:冒泡排序+Xor数值对调

方法1:比较笨的办法是先排好.再在里面找.看是原来的第几个. 方法2:有一个很快的方法,就是用快速排序排, #include "stdio.h"// void main(void){ int a[6]={8,5,2,7,9,4},b[6],c[6],i,j,x; for(i=0;i printf("%d ",b[i]=a[i]); printf("\n"); for(i=0;

/*我举个简单例子,一个一维数组int a[5]={3, 8, 4, 7, 6}按降序排列以后是int b[5]={8, 7, 6, 4, 3}最大的元素8在原来的数组中是第二位,7是第四位,等等得到一个表示原来位置的数组int c[5]={2, 4, 5, 3, 1}*/#includevoid main(){ int i,j,k=0; int a[5]={3, 8, 4, 7, 6}; int b[5]={8, 7, 6, 4, 3}; int c[5] = {0}; for (i=0;i 评论0 4 0

void sort (int* a,int max) { int temp; for (int i=0;i<max;i++) for (int j=i+1;j<max;j++) { if (a[j] < a[i]) { temp=a[j]; a[j]=a[i]; a[i]=temp; } } }

用链表吧 回去帮你写

for(i=0;i { if(a[i] { for(j=n-1;j a[j+1]=a[j]; a[i]=n;}} 改成 for(i=0;i { if(a[i]>=m) { for(j=n-1;j>=i;j--) a[j+1]=a[j]; break; }} a[i]=m;

void fun(int *num){ int temp; for(int i=0; i<10; ++i) for(int j=0; j<10-i-1; ++j) { if(num[j]<num[j+1]) { temp=num[j]; num[j]=num[j+1]; num[j+1]=temp; } }}这个是冒泡排序,你参考下

需要准备的材料分别有:电脑、C语言编译器.1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp.2、在test.cpp文件中,输入C语言代码:int a[10] = {6, 5, 7, 1, 3, 53, 87, 34, 2, 9};std::sort(a, a + 10);for (int i = 0; i < 10; i++)printf("%d ", a[i]);3、编译器运行test.cpp文件,此时成功将一维数组的10个整数进行了排序.

网站首页 | 网站地图
All rights reserved Powered by www.hyfm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com