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;
}