范文无忧网范文学习范文大全

C语言排序问题将所有的数字从小到大的顺序排序快排

09月15日 编辑 fanwen51.com

[c语言中的数组排序]#include #include int numSort(int *a,int count_num) { int i,j,min=-1,temp; for(j=count_num-1;j>0;j--) for(i=j-1;i>=0;i--) if(a[j] > a[i]) { temp=a[i]; a[i]=a[j]...+阅读

C语言排序问题将所有的数字从小到大的顺序排序快排

//这里的 copm为什么不带参数列表呢?

只需要把比较函数的地址传过去就可以了,而参数因为规定了必须是const void *类型,所以就没有必要重复了

// 还有这里传的两个指针参数

指针参数用来定位需要比较的两个元素,排序就涉及到比较,比较肯定就要两两比较了,当然要两个参数。数组的数只不过用来传进这个比较函数中去。而且你也不知道数组中可能是哪两个元素要比较,所以这样通用的比较函数才能实现

// 请问下这里的*(int*)a是什么意思

传入的参数是void *类型的指针,比较的时候需要把它转化为它实际的类型;而你这里是int,所以就要转化为int *的指针。访问指针p的值用*p表示,所以最后需要括号外再一个*来得到指针里面的值。返回值其实就是两个指针指向的值相减。返回为负数表示小,0为相等,正数为大,这样根据返回值就知道两个元素比较的大小

谁有快速排序的C语言实现啊

void swap(int *list, int i,int j)//swap two elements{ int temp=list[i]; list[i]=list[j]; list[j]=temp;}int partition(int *list,const int low, const int high)//to find the fixed position of //the low elements{ int base=list[low]; int i=low+1,j=high; if(high-low==1)//judge directly if there is only two elements { if(list[low]>list[high]) swap(list,low,high); return high; } while(ii) { swap(list,i,j); i++,j--; } } swap(list,low,j);//fix the position of the low return j;}void quickSort(int *list,const int left,const int right){ if(left

C语言中选择排序法和冒泡排序法代码

选择法的算法: 假设需要对10个数进行排序,那么首先找出10个数里面的最小数,并和这个10个数的第一个(下标0)交换位置,剩下9个数(这9个数都比刚才选出来那个数大),再选出这9个数中的最小的数,和第二个位置的数(下标1)交换,于是还剩8个数(这8个数都比刚才选出来的大).. 依次类推,当还剩两个数时,选出两个数的最小者放在第9个位置(下标8),于是就只剩下一个数了。

这个数已经在最后一位(下标9),不用再选择了。所以10个数排序,一共需要选择9次(n个数排序就需要选择n-1次)。#include "Stdio.h"void main(){ void sa(int array[],int n); int array[10],i; printf("enter the array:\n"); for(i=0;i

请教C语言的编程

//==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==**==*==*== //以前测试各种排序效率时候写的东西。删除了一些计算效率的东西,现在代码看起来有点凌乱。 //==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==**==*==*== #include #include #include using namespace std; //==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==**==*==*== // //==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==**==*==*== void QuickSort(char A[],int n); void Print(char DATA[],int star,int end); //==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==**==*==*== //QuickSort()快速排序 //==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==**==*==*== void QuickSort(char DATA[],int star,int end) { int i,j,x; if(star=x&i>N; DATA1=new char[N]; if(DATA1==NULL) { cout

延伸阅读:

C语言数组排序#include<stdio.h> void main() { int a[10] = { 10,2,3,4,5,6,9,8,7,1 }; int i,j,t; for(j=0;j<10;j++) for(i=0;i<10-1-j;i++) if(a[i]>a[i+1]) /* 由小到大,由大到小时改...

C语言数组排序高手快来#include "stdio.h" #define N 4 void main() { long num[N]; float score[N],sum=0,average; int a,b,i,j; printf("please input student number:\n"); for(i=0;i scanf("%ld",&...

数组排序C语言#include <stdio.h> #include <iostream.h> #include <stdlib.h> #include<time.h> void main() { int a[100],i,c,b,d,e,n; cin>>n; srand((unsigned)time(NULL)); for(i=0...

C语言中数组的排序方法中选择排序的原理是,每次从待排序数字中挑选出最大(最小)数字,放在有序序列的末尾。实际操作中,只需要在这个数组中将挑出来的数字与前面的数字交换即可。 例如: 4 1 5 2 3 找到最小...

C语言数组排序方法像是选择法排序,但不太简练! 正确的选择法为: #include <stdio.h> void main(void) { int a[9]={3,42,55,546,43,323,54,121,32},i,j,l,temp; for(i=0;i<9;i++) for(j=i+1;j<8;...

c语言整数数组排序#include"stdio.h" #define N 10 void sort(int a[],int method) { int i,k,t,j; switch(method) { case 1: for(i=0;i<N;i++) { for(j=0;j<N;j++) { if(a[j]>a[i]) { t=a[i];...

高清网络电视机顶盒排序顺序是怎样的高清网络电视机顶盒排名: NO.1:海尔网络电视机顶盒(中国知名的品牌,驰名商标,位于中国青岛 NO.2:杰科网络电视机顶盒(深圳杰科电子有限公司产品) NO.3:飞利浦网络电视机顶盒(世界最大...

C语言中运算符优先级排序C语言中运算符优先级排序,C语言中算术运算符的优先级是高于还是低于赋值运算符:1级优先级 左结合() 圆括号 [] 下标运算符 ->指向结构体成员运算符 . 结构体成员运算符 2级优先...

C语言实现七种排序算法的C语言实现七种排序算法的,怎样用c语言中堆排序实现一个数组a10的排序:(1)“冒泡法” 冒泡法大家都较熟悉。其原理为从a[0]开始,依次将其和后面的元素比较,若a[0]>a[i],则交换它们...

推荐阅读
图文推荐
栏目列表