1. 程式人生 > >C語言 輸入整數陣列 氣泡排序

C語言 輸入整數陣列 氣泡排序

/**
    輸入整數陣列,利用冒泡法進行排序,輸出每次冒泡的結果
    作者:nuaazdh
    時間:2012年5月29日
*/
#include <iostream>
#include <fstream>
#include <string>

#define SIZE 100

using namespace std;

void swap(int &a,int &b);
    //交換引數的值
bool bubble(int *array,int array_size);
    //氣泡排序
void printarray(int *array,int array_size);
    //輸出陣列中元素

int main()
{
    int array[SIZE],i,array_size;
    int temp;
    cout<<"請輸入一個總數小於100的整型陣列(Ctl+Z結束):"<<endl;
    for(i=0;i<SIZE&&cin>>temp;i++){
        array[i]=temp;
    }
    array_size=i;
    do{
        printarray(array,array_size);
    }while(bubble(array,array_size));
}

void swap(int &a,int &b){//交換引數的值
    int temp=a;
    a=b;
    b=temp;
}

bool bubble(int *array,int array_size){//氣泡排序
    bool flag=false;
    for(int i=0;i<array_size-1;i++)
        for(int j=i+1;j<array_size;j++)
            if(array[j]<array[j-1]){//交換
                swap(array[j],array[j-1]);
                flag=true;
            }
    return flag;
}

void printarray(int *array,int array_size){//輸出陣列中元素
    for(int i=0;i<array_size;i++){
        cout<<array[i]<<' ';
    }
    cout<<endl;
}

執行結果:

相關推薦

C語言 輸入整數陣列 氣泡排序

/** 輸入整數陣列,利用冒泡法進行排序,輸出每次冒泡的結果 作者:nuaazdh 時間:2012年5月29日 */ #include <iostream> #include <fstream> #include <st

【領卓教育】C語言基礎教學之氣泡排序

在C語言中,經常會用到for迴圈語句,通過for迴圈語句,可以使很多程式變得簡便,同時也能實現很多普通語句不能實現的功能。在for迴圈中,不僅只是單純的一個for迴圈,例如: main { ...; for(i=0;i<10;i++)

C語言實現簡單的氣泡排序

用C實現氣泡排序       常用的排序方法有氣泡排序法,選擇排序法,插入排序法以及希爾排序法等。本文著重講解如何利用C程式碼,實現氣泡排序。       首先,要了解什麼是氣泡排序。氣泡排序是常用的一種排序方法,其基本方法就是逐次比較。即一次比較兩個數,若它們的順序錯誤,

C語言輸入一行整數(OJ輸入格式)

就是說輸入一行用空格隔開的函式,可是它沒說用回車符結束,所以一定要用EOF了 第一種方法: int t = 0; char ch; do { scanf("%ld",&a[++t]); } while((ch=getchar())!='\n'&&ch!=E

C# 陣列氣泡排序(升序排序):

 可用C#中中提供的專門排序的方法來降序,降序排序可以先Array.Sort() 再 Array.Reverse()。【先升序再反轉過來】降序排序可以先升序後再反轉排序 。陣列反轉排序: View Code C#中有提供專門排序的方法:System.Array.Reverse(要排序的陣列);//顛倒排序,反

C語言結構體+陣列實現學生學號成績的統計、排序

#include <stdio.h> #include <stdlib.h> #define N 32  struct student {  int num;  int sch;  }s[N]={{392,81},{304,80},{442,85},

Problem C: C語言習題 整數排序

 主函式已給定如下,提交時不需要包含下述主函式 /* C程式碼 */ int main() {     void sort(int **,int );     int i,n,data[20],**p,*pstr[20];     scanf("%d",&n);     for (i=0; i

C語言------關於整數輸入的正序和倒序輸出

定義一個整數型別的輸入,然後讓它正序輸出,倒序輸出相信是很多C語言初學入門一定會遇到的經典題目,下面就是我對整數的正序和倒序輸出一點小小的總結. 1. 反序(倒序)輸出      反序輸出常用的思路就是按位取餘,把取出來的值進行迴圈儲存 int main() { i

C語言數組之冒泡排序+折半查找法(二分查找)

不存在 次數 存在 是否 .com int count 結束 如果 冒泡排序算法 1 int num[5]; 2 int i; 3 //循環接收用戶輸入的元素 4 for(i=0;i<5;i++){ 5 pr

C語言——輸入一個字符串,將連續數字字符轉換為數字

一個 [0 fine main span nbsp 輸出 print ont 輸入一個字符串,內有數字和非數字字符,例如: A123cdf 456.78cpc876.9er 849.1 將其中連續的數字作為一個實數,依次存放到一數組a中。例如123存放在a[0],456.

深入淺出數據結構C語言版(22)——排序決策樹與桶式排序

不改變 自然 只需要 都是 變種 限定 style buck oid   在(17)中我們對排序算法進行了簡單的分析,並得出了兩個結論:   1.只進行相鄰元素交換的排序算法時間復雜度為O(N2)   2.要想時間復雜度低於O(N2),算法必須進行遠距離的元素交換     

C語言 輸入一個小數,輸出它的立方。輸出保留小數點後的2位數字

c //輸入一個小數,輸出它的立方。輸出保留小數點後的2位數字。 #include <stdio.h> int main(int argc, const char * argv[]) { double i,t; printf("輸入一個小數:\n"); scanf("%lf

2407: C語言習題 整數轉換成字符串

輸出 stat script 代碼 pan center pre bbs tput 2407: C語言習題 整數轉換成字符串 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 917 Solved: 416[Submit][S

C語言面試題分類->排序算法

OS sort 試題 時間復雜度 ups popup popu 使用 body 1.選擇排序。   每次將最小的數,與剩余數做比較。找到更小的,做交換。   時間復雜度:O(n2)   空間復雜度:O(1)   優缺點:耗時但內存空間使用小。 void selectSor

排序算法的C語言實現(上 比較類排序:插入排序、快速排序與歸並排序)

大於等於 額外 通過命令 無序 tro 需要 目錄 線性 如何選擇 總述:排序是指將元素集合按規定的順序排列。通常有兩種排序方法:升序排列和降序排列。例如,如整數集{6,8,9,5}進行升序排列,結果為{5,6,8,9},對其進行降序排列結果為{9,8,6,5}。雖然排序的

機試練習總結06:c語言輸入&輸出&文件讀寫

putchar 錯誤 std 機試 open() 返回 oid eof getchar 一、標準文件 c語言把所有設備當作文件。 stdin:鍵盤、標準輸入 stdout:屏幕、標準輸出 stderr:您的屏幕、標準錯誤 頭文件:stdio.h 二、getchar() &a

C語言輸入與輸出總結

1. scanf輸入: 特點:除%c外,讀取輸入時會跳過非白字元前的所有空白字元,然後一直讀取字元,直到空白字元或正在讀取字元不匹配的字元.(不匹配的會丟入緩衝區.作為下一次輸入接收的字元). 技巧: ①:把*放在%和轉換字元之間時,可以讓scanf()跳過相應輸出項. 比如:sca

陣列氣泡排序

public class SecondDemo {          //陣列氣泡排序,從小到大     public static void bubuuMin(int[] arr) {   

g++ 記憶體分配 與 c 語言中的 陣列越界問題 (一道有趣的面試題)

首先是一段程式: # include <stdio.h> int main(int argc, char* argv[]){ int i = 0; int arr[3] = {0}; for(; i<=3; i++){ arr[i]

JAVA中陣列氣泡排序和選擇排序

氣泡排序的思想:兩兩之間比較大小,小的數在前,大的數在後。共比較i-1次。 static void MaoPaoArray(int[] a) { for (int i = 0; i < a.length - 2; i++) { for (int j = 0; j <