冒泡排序就是把小的元素往前調或者把大的元素日後調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。時間複雜度爲 O(n^2)。
點擊查看冒泡排序原理動畫演示javascript
import java.util.Arrays;
public class MyClass {
public static void main(String[] args){
int[] array = {9,35,4,78,31,2,777,56,83,15};
int[] arr1=sort(array);
System.out.println(Arrays.toString(arr1));
}
public static int[] sort(int[] array){
int[] arr = array;
for(int i = 0;i<arr.length;i++){
for(int j = 0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
}複製代碼
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSMutableArray *array = [NSMutableArray arrayWithObjects:@9,@35,@4,@78,@31,@2,@777,@56,@83,@15, nil];
[self sort:array];
}
-(void)sort:(NSMutableArray*)arr{
for(int i = 0;i<[arr count];i++){
for(int j = 0;j<[arr count]-i-1;j++){
if(arr[j]>arr[j+1]){
[arr exchangeObjectAtIndex:j withObjectAtIndex:j+1];
}
}
}
for(int i = 0;i<[arr count];i++){
NSLog(@"%d",[arr[i] intValue]);
}
}
@end複製代碼
def paixu(array):
#控制外層循環
for i in range(0,len(array)):
#內層循環
for j in range(0,len(array)-i-1):
#把大數放到後面
if array[j]>array[j+1]:
array[j],array[j+1] = array[j+1],array[j]
print(array)
if __name__ == "__main__":
array = [9,35,4,78,31,2,777,56,83,15]
paixu(array)複製代碼
object HelloWorld {
def main(args:Array[String]){
var array = Array(9,35,4,78,31,2,777,56,83,15)
sort(array)
}
def sort(array:Array[Int]):Unit={
for(i <- 0 to array.length-1){
for(j <- 0 to array.length-i-2){
if(array(j)>array(j+1)){
var temp:Int = array(j)
array(j) = array(j+1)
array(j+1) = temp
}
}
}
for ( x <- array ) {
println( x )
}
}
}複製代碼