程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ 直接排序實例代碼詳解

C++ 直接排序實例代碼詳解

編輯:C++入門知識

for (j=i;j>-1;j--)
{
    if (map[j]<temp)//第一個數大於第二個數,前面大於後面就進行交換 4.         {
    // map[j]=map[j]; 6.            map[j 1]=map[j];
    map[j]=temp;
}
基本思想:
把 n 個待排序的元素看成為一個有序表和一個無序表,開始時有序表中只包含一個元素,無序表中包含有n-1個元素,排序過程中每次從無序表中取出第一個元素,把它的排序碼依次與有序表元素的排序碼進行比較,將它插入到有序表中的適當位置,使之成為新的有序表。

實現過程:
第一步求升序排序
#include <iostream> 3.using namespace std;
int map[10]={3,1,2,10,8,4,5,6,7,9};
void main()
{
    int i,j;
    int temp;
    for (i=0;i<10-1;i )
    {
        temp=map[i 1];//無序表的臨時變量元素 16.17.//第一種條件寫法 18.         j=i;//從i=0 開始到i=9結束循環 19.         while(j>-1&&temp<map[j])
    {
        map[j 1]=map[j];
        j--;//退出循環的標記 23.         }
        map[j 1]=temp;
    }
    for (int k=0;k<10;k )
    {
        cout<<map[k]<<endl;
    }
}

 第二種寫法:
#include <iostream> 2.using namespace std;
int map[10]={3,1,2,10,8,4,5,6,7,9};
void main()
{
    int i,j;
    int temp;
    for (i=0;i<10-1;i )
    {
        temp=map[i 1];//無序表的臨時變量元素 15.16.//兩種寫法 17.//       j=i;//從i=0 開始到i=9結束循環 18.//       while(j>-1&&temp<map[j]) 19.//       {   20.//           map[j 1]=map[j]; 21.//           j--;//退出循環的標記 22.//       } 23.//       map[j 1]=temp;  24.25.   for (j=i;j>-1;j--)
    {
    if (map[j]<temp)//第一個數大於第二個數,前面大於後面就進行交換 28.         {
    // map[j]=map[j]; 30.            map[j 1]=map[j];
        map[j]=temp;
    }
    }
    //map[j 1]=temp; 39.   
 }
    for (int k=0;k<10;k )
    {
        cout<<map[k]<<endl;
}

比較上下兩種寫法,其實實現的結果是一樣的,目的是排序1-10順利列表。
第一步:我們將第一個元素列為有序表,那麼剩下的9個元素就是我們通過比較大小插入到有序表當中;

第二步:使用的循環,一個外循環,一個內循環,外循環目的在於遍歷剩下的9個數,而內循環比較數的大小,而後插入有序表的後面
for (j=i;j>-1;j--)
{
    if (map[j]<temp)//第一個數大於第二個數,前面大於後面就進行交換 4.         {
    // map[j]=map[j]; 6.            map[j 1]=map[j];//將前面的數賦予後面的數
    map[j]=temp;//將後面的數賦予前面的數
}
如果後面的數大於前面的數,那麼兩個數就需要進行交互了,說白了,大的在後,前的在小
結果:1,2,3,4,5,6,7,8,9,10

完成直接排序
說到這裡,我們聯系到我們的As3.0代碼中同樣類似的功能,可以發揮一下想像用flash 模擬這種數據結構

基本過程:
一、定義一個數組,一個沒有排序好的數組
map[10],這樣做法盡量簡單,明白,省去麻煩的代碼。

二、我們把第一個數定義為有序表,剩下的10-1=9的個數屬於無序表
(有序表 無序表)=》排序成有序表

三、利用兩個循環,一個外循環,一個內循環,對剩下的9個數進行比較,大的數放在後面,小的數放在前面,進行位置交互,

四、輸出結果,輸出我們的結果,希望這篇文章能對你有所收獲。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved