C语言中的三种排序方法

 时间:2026-02-14 14:36:42

1、交换排序:借鉴了求最大值,最小值的思想,按升序排列的基本过程为:先将第一个数分别与后面的数进行比较,若后面是的数小,则交换和第一个数的位置,否则不交换:这一轮结束之后,则求除了一个最小的放在第一个位置,然后进行第二轮比较,但这种交换效率低

package cho2;

public class changeSort {

public static void main(String[] args) {

// TODO 自动生成的方法存根

//对给定的数组进行排序

int[] a={53,54,56,51};

int i;

int j;

int temp=0;

//注意不要数组越界 如果i小于4或者j小于5都会有越界的

//现象

//注意交换中不能时时刻刻用i+1代替j;

for(i=0;i<3;i++){

for(j=i+1;j<4;j++){

if(a[i]>a[j]){

temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

}

for(i=0;i<4;i++){

System.out.println(a[i]);

}

}

}

2、冒泡排序:将相邻两个数进行交换,重复的过程,一般,如果有N个数进行排序,则需进行N-1起泡

package cho2;

public class maopao {

public static void main(String[] args) {

// TODO 自动生成的方法存根

int[] a={53,54,56,51};

int i;

int j;

int m=0;

int temp=0;

for(i=0;i<3;i++){

m=m-1;

//4+m主要为了减少运行的次数

for(j=0;j<4+m;j++){

if(a[j]>a[j+1]){

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

}

for(i=0;i<4;i++){

System.out.println(a[i]);

}

}

}

3、选择排序:在交换排序的基础上,找出余下的数中的最大值再与地I+1个数进行交换,这样每一轮比较中最多只有一次交换操作,这个算法最多只有N—1次交换操作

package cho2;

public class selectSort {

public static void main(String[] args) {

// TODO 自动生成的方法存根

int[] a={53,54,56,51};

int i;

int j;

int k;

int temp=0;

for(i=0;i<3;i++){

k=i;

for(j=i+1;j<4;j++){

if(a[i]>a[j]){

k=j;

}

}

if(k!=i){

temp=a[k];

a[k]=a[i];

a[i]=temp;

}

}

for(i=0;i<4;i++){

System.out.println(a[i]);

}

}

}

  • 怎么知道联通卡注销成功了
  • 中国联通APP如何申请注销
  • 联通卡高额半停机如何解决
  • 电信营业厅app怎么注销服务
  • 驾驶证科一成绩查询
  • 热门搜索
    关于反邪教的手抄报 五一劳动节手抄报简单又漂亮 三年级环保手抄报 2020国庆节手抄报内容 手抄报图片花边 祖国我爱你手抄报 走进信息世界手抄报 预防禽流感手抄报 迎中秋庆国庆手抄报 教师节手抄报模板