거품정렬 구현

Jmnote (토론 | 기여)님의 2018년 8월 26일 (일) 16:25 판 (→‎C++)


1 C

기본형
#include <stdio.h>
#define ARRAYSIZE(A) sizeof(A)/sizeof((A)[0])
void bubble_sort(int arr[], int size) {
    int i, j, temp;
    for(i=0; i<size-1; i++) {
		for(j=0; j<size-i-1; j++) {
			if(arr[j] > arr[j+1]) {
				temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
}
int main() {
	int arr[] = {9,1,22,4,0,-1,1,22,100,10};
	int size = ARRAYSIZE(arr);
	bubble_sort(arr, size);
	for(int i=0; i<size; i++) printf("%d ", arr[i]);
	// -1 0 1 1 4 9 10 22 22 100 
}
개선형 (swapped 플래그 적용)
#include <stdio.h>
#define ARRAYSIZE(A) sizeof(A)/sizeof((A)[0])
void bubble_sort(int arr[], int size) {
    int i, j, temp, swapped;
    for(i=0; i<size-1; i++) {
        swapped = 0;
		for(j=0; j<size-i-1; j++) {
			if(arr[j] > arr[j+1]) {
				temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
				swapped = 1;
			}
		}
		if( swapped == 0 ) break;
	}
}
int main() {
	int arr[] = {9,1,22,4,0,-1,1,22,100,10};
	int size = ARRAYSIZE(arr);
	bubble_sort(arr, size);
	for(int i=0; i<size; i++) printf("%d ", arr[i]);
	// -1 0 1 1 4 9 10 22 22 100 
}

2 C++

기본형
#include <iostream>
#define ARRAYSIZE(A) sizeof(A)/sizeof((A)[0])
void bubble_sort(int arr[], int size) {
    int i, j, temp;
    for(i=0; i<size-1; i++) {
		for(j=0; j<size-i-1; j++) {
			if(arr[j] > arr[j+1]) {
				temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
}
int main() {
	int arr[] = {9,1,22,4,0,-1,1,22,100,10};
	int size = ARRAYSIZE(arr);
	bubble_sort(arr, size);
	for(int i=0; i<size; i++) std::cout << arr[i] << " ";
	// -1 0 1 1 4 9 10 22 22 100 
}
개선형 (swapped 플래그 적용)
#include <iostream>
#define ARRAYSIZE(A) sizeof(A)/sizeof((A)[0])
void bubble_sort(int arr[], int size) {
    int i, j, temp;
    bool swapped;
    for(i=0; i<size-1; i++) {
        swapped = false;
		for(j=0; j<size-i-1; j++) {
			if(arr[j] > arr[j+1]) {
				temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
				swapped = true;
			}
		}
		if( !swapped ) break;
	}
}
int main() {
	int arr[] = {9,1,22,4,0,-1,1,22,100,10};
	int size = ARRAYSIZE(arr);
	bubble_sort(arr, size);
	for(int i=0; i<size; i++) std::cout << arr[i] << " ";
	// -1 0 1 1 4 9 10 22 22 100 
}

3 C#

using System;
class Program {
    static void bubble_sort(int []arr) {
        int i, j, temp, size = arr.Length;
        for(i=0; i<size-1; i++) {
            for(j=1; j<size-i; j++) {
                if (arr[j-1] > arr[j]) {
                    temp = arr[j-1];
                    arr[j-1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }
    static void Main() {
        int []arr = {3,4,2,1,7,5,8,9,0,6,100,10};
        bubble_sort(arr);
        foreach(int i in arr) Console.Write(i+" ");
        // 0 1 2 3 4 5 6 7 8 9 10 100 
    }
}

4 Java

public class MyClass {
	private static void bubble_sort(int[] arr) {
		int i, j, temp, size = arr.length;
		for(i=0; i<size-1; i++) {
			for(j=1; j<size-i; j++) {
				if(arr[j-1] > arr[j]) {
					temp = arr[j-1];
					arr[j-1] = arr[j];
					arr[j] = temp;
				}
			}
		}
	}
	public static void main(String args[]) {
		int[] arr = {9,1,22,4,0,-1,1,22,100,10};
		bubble_sort(arr);
		for(int x: arr) System.out.format( "%d ", x );
		// -1 0 1 1 4 9 10 22 22 100 
	}
}

5 PHP

기본형
<?php
function bubble_sort(&$arr) {
	$size = count($arr);
	for($i=0; $i<$size-1; $i++) {
		for($j=1; $j<$size-$i; $j++) {
			if($arr[$j-1] > $arr[$j]) {
				$temp = $arr[$j-1];
				$arr[$j-1] = $arr[$j];
				$arr[$j] = $temp;
			}
		}
	}
}
$arr = [3,4,2,1,7,5,8,9,0,6,100,10];
bubble_sort( $arr );
echo implode(' ', $arr);
// 0 1 2 3 4 5 6 7 8 9 10 100
개선형 (swapped 플래그 적용)
<?php
function bubble_sort(&$arr) {
	$size = count($arr);
	for($i=0; $i<$size-1; $i++) {
		$swapped = false;
		for($j=1; $j<$size-$i; $j++) {
			if($arr[$j-1] > $arr[$j]) {
				$temp = $arr[$j-1];
				$arr[$j-1] = $arr[$j];
				$arr[$j] = $temp;
				$swapped = true;
			}
		}
		if( !$swapped ) break;
	}
}
$arr = [3,4,2,1,7,5,8,9,0,6,100,10];
bubble_sort( $arr );
echo implode(' ', $arr);
// 0 1 2 3 4 5 6 7 8 9 10 100

6 Python

def bubble_sort(arr):
	length = len(arr)-1
	for i in range(length):
		for j in range(length-i):
			if arr[j] > arr[j+1]:
				arr[j], arr[j+1] = arr[j+1], arr[j]
arr = [3,4,2,1,7,5,8,9,0,6,100,10]
bubble_sort(arr)
print( arr )
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100]

7 Scala

object MyClass {
	def bubble_sort(arr: Array[Int]) =  {
		var temp, size = arr.length
		for(i<-0 until size; j<-1 until size-i) {
			if(arr(j-1) > arr(j)) {
				temp = arr(j-1)
				arr(j-1) = arr(j)
				arr(j) = temp
			}
		}
	}
	def main(args: Array[String]) {
	    var arr = Array(3,4,2,1,7,5,8,9,0,6,100,10)
	    bubble_sort( arr )
	    print( arr.mkString(" ") )
	    // 0 1 2 3 4 5 6 7 8 9 10 100
	}
}

8 같이 보기

9 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}