你们好,最近小活发现有诸多的小伙伴们对于c语言排序算法,c语言排序这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
1、交换排序:借鉴求最大值和最小值的思想,升序排序的基本过程是:先将第一个数与后面的数进行比较,如果后面的数小,则交换第一个数的位置,否则不交换:这一轮后,将最小的放在第一个位置,再进行第二轮比较,但这种交换效率很低。
【资料图】
2、包装cho2
3、公共类更改排序{
4、公共静态void main(String[] args) {
5、//TODO自动生成的方法存根
6、//对给定数组进行排序。
7、int[] a={53,54,56,51 };
8、int I;
9、int j;
10、int temp=0;
11、//注意不要越过数组。如果I小于4或者J小于5,就过线了。
12、/现象
13、//注意,在交换中,i 1不能总是替换J;
14、for(I=0;i3;i ){
15、for(j=I ^ 1;j4;j ){
16、if(a[i]a[j]){
17、temp=a[I];
18、a[I]=a[j];
19、a[j]=temp;
20、}
21、}
22、}
23、for(I=0;i4;i ){
24、system . out . println(a[I]);
25、}
26、}
27、}
28、冒泡排序:交换和重复两个相邻数字的过程。一般来说,如果有N个数要排序,就需要N-1次冒泡。
29、包装cho2
30、公共课毛炮{
31、公共静态void main(String[] args) {
32、//TODO自动生成的方法存根
33、int[] a={53,54,56,51 };
34、int I;
35、int j;
36、int m=0;
37、int temp=0;
38、for(I=0;i3;i ){
39、m=m-1;
40、//4 m主要是为了减少运行次数。
41、for(j=0;j4m;j ){
42、if(a[j]a[j 1]){
43、temp=a[j];
44、a[j]=a[j 1];
45、a[j 1]=temp;
46、}
47、}
48、}
49、for(I=0;i4;i ){
50、system . out . println(a[I]);
51、}
52、}
53、}
54、选择性排序:在交换排序的基础上,找出剩余数的最大值然后与数I 1交换,这样每轮比较最多只有一次交换操作,这个算法最多只有n-1次交换操作。
55、包装cho2
56、公共类选择排序{
57、公共静态void main(String[] args) {
58、//TODO自动生成的方法存根
59、int[] a={53,54,56,51 };
60、int I;
61、int j;
62、int k;
63、int temp=0;
64、for(I=0;i3;i ){
65、k=I;
66、for(j=I ^ 1;j4;j ){
67、if(a[i]a[j]){
68、k=j;
69、}
70、}
71、如果(k!=i){
72、temp=a[k];
73、a[k]=a[I];
74、a[I]=temp;
75、}
76、}
77、for(I=0;i4;i ){
78、system . out . println(a[I]);
79、}
80、}
81、}
以上就是c语言排序这篇文章的一些介绍,希望对大家有所帮助。
Copyright@ 2015-2022 青年文娱网版权所有 备案号: 皖ICP备2022009963号-20 联系邮箱:39 60 291 42@qq.com
