C語言/C++|Bubble Sort(冒泡排序)

C語言:
#include <stdio.h>

int main() {
	int n, i, j, temp;
	scanf("%d",&n);
	int array[n];
	
	for (i = 0; i < n; ++ i) {
		scanf("%d",&array[i]);
	}
	
	/* bubble_sort */
	for (i = 0; i < n-1; ++ i) {
		for (j = 0; j < n-1; ++ j) {
			if (array[j] > array[j+1]) {
				temp = array[j];
				array[j] = array[j+1];
				array[j+1] = temp;
			}
		}
	}
	for (i = 0; i < n; ++ i) {
	    printf("%d ",array[i]);
	}
} 



C++:
#include <iostream>
using namespace std;

int main() {
	int n, temp;
	cin >> n;
	int array[n];
	
	for (int i = 0; i < n; ++ i) {
		cin >> array[i];
	}
	
	for (int i = 0; i < n - 1; ++ i) {
		for (int j = 0; j < n - 1; ++ j) {
			if(array[j] > array[j+1]) {
				temp = array[j];
				array[j] = array[j+1];
				array[j+1] = temp;
			}
		}
	}
	
	for (int i = 0; i < n; ++ i) {
		cout << array[i] << ' ';
	}
}


If we want to output the original indexes of the numbers in the sorted order:
#include <iostream>
using namespace std;

int main() {
	int n, temp;
	cin >> n;
	int array[n], rank[n];
	for (int i = 0; i < n; ++ i) {
	    rank[i] = i;
	}
	
	for (int i = 0; i < n; ++ i) {
		cin >> array[i];
	}
	
	for (int i = 0; i < n - 1; ++ i) {
		for (int j = 0; j < n - 1; ++ j) {
			if(array[rank[j]] > array[rank[j+1]]) {
				temp = rank[j];
				rank[j] = rank[j+1];
				rank[j+1] = temp;
			}
		}
	}
	
	for (int i = 0; i < n; ++ i) {
		cout << rank[i] << ' ';
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章