用C语言程序对一组大小不定的数字排序拜托了各位 有一组大小不定的数字,需要设定程序对他们进行从小到大的排列.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 12:12:54
用C语言程序对一组大小不定的数字排序拜托了各位 有一组大小不定的数字,需要设定程序对他们进行从小到大的排列.

用C语言程序对一组大小不定的数字排序拜托了各位 有一组大小不定的数字,需要设定程序对他们进行从小到大的排列.
用C语言程序对一组大小不定的数字排序拜托了各位
有一组大小不定的数字,需要设定程序对他们进行从小到大的排列.

用C语言程序对一组大小不定的数字排序拜托了各位 有一组大小不定的数字,需要设定程序对他们进行从小到大的排列.
第一个就是冒泡排序法,几乎是最简单的排序方法: #include #include #define N 10 int main( void ) { int i, j, temp ; int a[N] = {0,1,2,3,4,5,6,7,8,9}; // 冒泡排序法进行排序 for( i = 0; i < N - 1; i++ ){ for( j = 0; j < N-i-1; j++ ){ if( a[i] < a[j] ){ temp = a[i] ; a[i] = a[j] ; a[j] = temp ; } } }//第一个for printf("你是入的十个数是:\n") ; for( i = 0; i < N; i++ ){ printf("%d ",a[i] ) ; } getch() ; return 0 ; } 下面的是选择排序法,比冒泡排序法的效率高: #include #include #define N 10 int main( void ) { int i, j, k, temp ; int a[N] = {0,1,2,3,4,5,6,7,8,9}; // 选择排序法进行排序 for( i = 0; i < N - 1; i++ ){ k = i ; for( j = i + 1; j < N; j++ ){ if( a[k] < a[j] ){ k = j ; } temp = a[i] ; a[i] = a[k] ; a[k] = temp ; } }//第一个for printf("你是入的十个数是:\n") ; for( i = 0; i < N; i++ ){ printf("%d ",a[i] ) ; } getch() ; return 0 ; } 下面的是插入排序法,比冒泡排序法和选择排序法的效率都要高: #include #include #define N 10 int main( void ) { int i, j, key, temp ; int a[N] = {0,1,2,3,4,5,6,7,8,9}; // 插入排序法进行排序 for( i = 1; i < N ; i++ ){ key = a[i] ; for( j = i - 1; j >= 0; j-- ){ if( a[j] < key ){ a[j+1] = a[j] ; } } a[j+1] = key ; }//第一个for printf("你是入的十个数是:\n") ; for( i = 0; i < N; i++ ){ printf("%d ",a[i] ) ; } getch() ; return 0 ; } 下面的是归并排序法,我是在看了《算法导论》之后才写的,我自己写不出来.代码写出来很简单,比其它一些书上的简单多了.归并排序法的效率是这四个排序法中效率最高的: #include #include #define N 10 void merge_sort( int *a, int p, int q, int r ) { int i, j, k, m, n ; int array1[N], array2[N] ; // m和n分别是新建立的两个数组中 // 元素的个数 m = q - p + 1 ; n = r - q ; // 先把数组a[N],中的元素放进 // 新建立的两个数组中 for( i = 0; i < m; i++ ){ array1[i] = *( a + p + i ) ; } for( j = 0; j < n; j++ ){ array2[j] = *( a + q + j +1 ) ; } i = j = 0 ; k = p ; // k 不能被初始化为 0 // 开始归并 while( i < m && j < n ){ if( array1[i] > array2[j] ){ *( a + k ) = array1[i] ; ++ k ; ++ i ; } else{ *( a + k ) = array2[j] ; ++ k ; ++ j ; } } // 归并每个数组剩下的元素 while( i < m ){ *( a + k ) = array1[i] ; ++ k ; ++ i ; } while( j < n ){ *( a + k ) = array2[j] ; ++ k ; ++ j ; } } void merge( int *a, int p, int r ) { int q ; // p >= r的情况就是要排序的元素只有一个, // 也就是说,它已经被排好了 if( p < r ){ q = (p + r)/2 ; merge( a, p, q ) ; merge( a, q + 1, r ); merge_sort( a, p, q, r ); } }// merge int main( void ) { int i, j, key, temp ; int a[N] = {0,1,2,3,4,5,6,7,8,9}; merge( a, 0, 9) ; printf("你是入的十个数是:\n") ; for( i = 0; i < 10; i++ ){ printf("%d ",a[i] ) ; } getch() ; return 0 ; }

用C语言程序对一组大小不定的数字排序拜托了各位 有一组大小不定的数字,需要设定程序对他们进行从小到大的排列. c语言一组数字求和,比如随便输入3,10,5,40等,求和,数字的个数是不定的 用冒泡排序法将一组数据从小到大重新排列并输出求C语言程序.急用! 用C语言产生一组随机数,并用这组数来比较各种排序方法的效率(答得好给100+的分)每次进入程序生成100个随机数,采用顺序存储结构.比较插入排序,折半排序,冒泡排序和快速排序4种排序.采 C语言中,以命令行输入一组数字,并以从小到大排序输出!需要用到atoi函数!比如说连续输入12 ,09 ,27,58,01等数字 先用这个函数把输入的12等数字转换成代表大小的数值,赋值给一个数组,然后比较 C语言的一个简单程序:输入100个任意数字,按从小到大排序.请写出具体的程序,最好附上流程图, 如何用C语言设计程序排列6个数字的大小顺序? 从键盘上输入10个数,C语言程序:用起泡法对这10个数排从小到大的顺序排序后输出. 用C语言比较三个数的大小,并按照从大到小排序 用C语言写一程序:任意随机抽取10个数,然后排序,去除最大的和最小的,求和? 关于C语言的问题,位数大小排序(掌握数值排序算法)位数大小排序(掌握数值排序算法)程序说明:输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的五位整 关于C语言的问题,位数大小排序(掌握数值排序算法)(1)位数大小排序(掌握数值排序算法)程序说明:输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的 用JAVA程序冒泡排序算法把一组打乱顺序的数字从小到大排列并打印出来用冒泡排序算法把一组打乱顺序的数字从小到大排列并打印出来,要求用JAVA程序写,没学过程序的求大哥帮助啊,最简单 c语言三个数大小排列求助!三个数字大小排列,数字类型有整数,负数,小数,数字长度不定,输入字母等时提示错误. 用java语言编写一个程序对任意三个整数进行排序并输出结果 给一组无序的英文单词,用C++编写程序,实现字典排序,输出排序后的单词. C语言,用指针对三个数从小到大排序? 关于数学黑洞6174(c程序)拜托各位大神假设有一个各位数字各不相同的四位数,把所有数字从大到小排序后得到A,从小到大排序后得到B,然后用A-B替换原来这个数,并且继续操作.例如:从1234出