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