Java和C冒泡排序

java

Java

示例代码:

public class test {

public static void main(String[] args) {

String str = "321dca5"; //需要排序的字符串

char[] new_string;

new_string = sorting(str); //调用sorting进行排序

System.out.println(new_string); //输出结果

}

public static char[] sorting(String str) {

/**

* 传入一个字符串str排序后返回排序后的字符串

* */

char[] arr;

char t; //交换时零时存放数据

int str_len;

str_len = str.length();

arr = str.toCharArray();

for (int i=0;i<str_len-1;i++) {//最后一个值不用管-1即可,java中运行如果不减一下面if要重写,否则j+1会出现下标越界

for (int j=0;j<str_len-1-i;j++) {

if (arr[j] > arr[j+1]) { //>升序 <降序

//替换j和j+1的值

t = arr[j];

arr[j] = arr[j+1];

arr[j+1] = t;

}

}

}

//String new_str = arr.toString(); //这里不需要转成String即可直接输出字符串(不晓得数组中发生了什么)

return arr;

}

}

eclipse中执行结果:

1235acd

C语言

示例代码:

# include <stdio.h>

void sort(int * a,int len);

int main(void){

int arr[] = {20,3,4,1};

int i,num;

num = sizeof(arr) / sizeof(arr[0]);

sort(arr,num); //因为arr是一个数组,直接使用数组名就能得到地址编号,所以这里直接传数组名称进去就可以了

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

printf("%d\n",arr[i]);

}

return 0;

}

void sort(int * pArr,int len){

int i,j,t;

for (i=0; i<len-1; ++i) //一直向后移动最后一个肯定是最小的所以执行len-1即可(不减1也可以)

{

for (j=0; j<len-1-i; ++j)

{ //如果前面一个学生的成绩大于后面这个学生,则替换这两个学生的信息

if (pArr[j] > pArr[j+1]) //>升序 <降序

{

t = pArr[j];

pArr[j] = pArr[j+1];

pArr[j+1] = t;

}

}

}

}

Dev-c++中执行结果:

1

3

4

20

以上是 Java和C冒泡排序 的全部内容, 来源链接: utcz.com/z/394932.html

回到顶部