冒泡排序的多种语言实现

c/c++/python/java代码实现

c与c++

在这里我把索引根据原理意象化了,i表示边界索引,j表示正在冒泡的值的索引
若为了方便编写可直接 外循环(N - 1)次 / 内循环 (N - i - 1)次

for (int i = 0; i > N - 1; i++)
for (int j = 0; j < N - i - 1; j++)

// 把最大值往右冒
void BullutSort_1(int* arr, int N) {	
	for (int i = N; i > 1; i--) {          
		for (int j = 0; j < i - 1; j++) {
		//在这里我把索引根据原理意象化了,i表示边界索引,j表示正在冒泡的值的索引
		//若为方便编写可直接 外循环(N - 1)次 内循环 (N - i - 1)次
			if (arr[j] > arr[j + 1]) {
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
}
//把最小值往左冒
void BullutSort_2(int* arr, int N) {
	
	
	for (int i = 0; i < N ; i++) {
		for (int j = N - 1; j > i ; j--) {
			if (arr[j] < arr[j - 1]) {
				int temp = arr[j];
				arr[j] = arr[j - 1];
				arr[j - 1] = temp;
			}
		}
	}
}

python

class Solution(object):
    def __init__(self,l):
        self.l = l

    def mp_sort(self):
        for i in range(len(self.l)):          # 次数:数组长度  -1
            for j in range(len(self.l)-i-1):  # 次数:数组长度 - 轮数 -1
                if self.l[j] > self.l[j+1]:
                    self.l[j+1], self.l[j]= self.l[j], self.l[j+1]
                else:
                    pass
        print(self.l)

java

private static int[] bobleSort(int[] arr) {
   for (int i = 0; i < arr.length - 1; i++) { 		  # 次数:数组长度 -1
      for (int j = 0; j < arr.length - i - 1; j++) {  # 次数:数组长度 - 轮数 -1
        if (arr[j] > arr[j + 1]) {
        	int temp = arr[j];
        	arr[j] = arr[j + 1];
        	arr[j + 1] = temp;
        }
       }
    }
    return arr;
}
发布了11 篇原创文章 · 获赞 29 · 访问量 706

猜你喜欢

转载自blog.csdn.net/a13352912632/article/details/104050604