程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++完成簡略的希爾排序Shell Sort實例

C++完成簡略的希爾排序Shell Sort實例

編輯:關於C++

C++完成簡略的希爾排序Shell Sort實例。本站提示廣大學習愛好者:(C++完成簡略的希爾排序Shell Sort實例)文章只能為提供參考,不一定能成為您想要的結果。以下是C++完成簡略的希爾排序Shell Sort實例正文


本文以實例情勢講述了基於C++完成簡略的希爾排序Shell Sort的辦法,是一個很經典的算法,詳細完成代碼以下:

#include <iostream>
using namespace std;
void ShellSort(int* iArray,int length)
{
 //初始化jump等於length
 int jump = length;
 //標志本趟檢測能否停止了交流,
 // 若停止了 則還有下次從頭開端的檢測,
 // 不然停滯,持續轉變jump的值 做另外一趟排序
 bool isSwap;
 while(jump != 0)
 {
  //jump每次/2
 jump = jump / 2;
 do{
  int i = 1;
  //初始化表現沒有停止交流
  isSwap = false;
  while( i <= length - jump)
  {
  if(iArray[i] > iArray[i+jump])
  {
   int temp = iArray[i];
   iArray[i] = iArray[i+jump];
   iArray[i+jump] = temp;
   isSwap = true;
  }
  i++;
  }
 }while(isSwap == true);//假如停止了交流解釋 增量為jump的序列 
    //能夠存在不是有序的 在檢測一遍
     //不然解釋增量為jump的序列是有序的
 }
}
int main()
{
 int iArray[] = {0,50,123,36,25,200,36,95,70,14,10,321,1,3,5,8};
 ShellSort(iArray,15);
 for(int i = 1; i <= 15; i++)
 {
 cout<<iArray[i]<<" ";
 }
 cout<<endl;
 return 0;

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