你们好,最近小时发现有诸多的小伙伴们对于C语言排序算法背景,c语言排序算法这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
1、交换排序:借鉴了求最大值,最小值的思想,按升序排列的基本过程为:先将第一个数分别与后面的数进行比较,若后面是的数小,则交换和第一个数的位置,否则不交换:这一轮结束之后,则求除了一个最小的放在第一个位置,然后进行第二轮比较,但这种交换效率低
2、package cho2;
3、public class changeSort {
4、 public static 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;i<3;i++){
15、 for(j=i+1;j<4;j++){
16、 if(a[i]>a[j]){
17、 temp=a[i];
18、 a[i]=a[j];
19、 a[j]=temp;
20、 }
21、
22、 }
23、 }
24、 for(i=0;i<4;i++){
25、 System.out.println(a[i]);
26、 }
27、 }
28、
29、 }
30、冒泡排序:将相邻两个数进行交换,重复的过程,一般,如果有N个数进行排序,则需进行N-1起泡
31、package cho2;
32、public class maopao {
33、 public static void main(String[] args) {
34、 // TODO 自动生成的方法存根
35、 int[] a={53,54,56,51};
36、 int i;
37、 int j;
38、 int m=0;
39、 int temp=0;
40、
41、 for(i=0;i<3;i++){
42、 m=m-1;
43、 //4+m主要为了减少运行的次数
44、 for(j=0;j<4+m;j++){
45、 if(a[j]>a[j+1]){
46、 temp=a[j];
47、 a[j]=a[j+1];
48、 a[j+1]=temp;
49、 }
50、
51、 }
52、 }
53、 for(i=0;i<4;i++){
54、 System.out.println(a[i]);
55、 }
56、 }
57、
58、
59、 }
60、选择排序:在交换排序的基础上,找出余下的数中的最大值再与地I+1个数进行交换,这样每一轮比较中最多只有一次交换操作,这个算法最多只有N—1次交换操作
61、package cho2;
62、public class selectSort {
63、 public static void main(String[] args) {
64、 // TODO 自动生成的方法存根
65、 int[] a={53,54,56,51};
66、 int i;
67、 int j;
68、 int k;
69、 int temp=0;
70、
71、 for(i=0;i<3;i++){
72、 k=i;
73、 for(j=i+1;j<4;j++){
74、 if(a[i]>a[j]){
75、 k=j;
76、 }
77、 }
78、 if(k!=i){
79、 temp=a[k];
80、 a[k]=a[i];
81、 a[i]=temp;
82、
83、
84、
85、 }
86、 }
87、 for(i=0;i<4;i++){
88、 System.out.println(a[i]);
89、 }
90、 }
91、
92、
93、 }
以上就是c语言排序算法这篇文章的一些介绍,希望对大家有所帮助。