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

来源:互联网 发布:淘宝联盟高佣金多少 编辑:程序博客网 时间:2024/06/05 07:29
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] << ' ';}}


0 0