选择排序

2018-05-05  本文已影响0人  净土_0342

C语言的代码:

#include <iostream>
using namespace std;
void insertionSort(int a[],int len){
    int temp;
    int i;//已排好序的序列的下一个元素(待插元素)的下标
    int j;//有序序列的末尾下标
    for(i = 1;i<len;i++){
        temp = a[i];
//        for(j = i-1;j>=0;j--){//遍历有序序列,与要插入的元素比较
//            if(a[j]>temp){
//                a[j+1] = a[j];//将元素后移,满足条件后移一个位置
//            }
//        }
        j=i-1;
        while(j>=0&&a[j]>temp){
            a[j+1] = a[j];
            j--;
        }
        a[j+1] = temp; //插入
    }
    printf("插入排序的结果:\n");
    for(int i = 0 ; i< len; i++){
        printf("%d ",a[i]);
    }
    printf("\n\n");

}
int main() {
    int a[] = {1,5,10,5,6,4,7,8};
    insertionSort(a,8);
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

伪代码:

for j=2 to A.length
  key = a[j]
//插入a[j] 到已经排好序的a[1....j-1]
  i=j-1
  while i>0 and a[i]>key
    a[i+1] = a[i]
    i =i-1
  a[i+1] =key

上一篇下一篇

猜你喜欢

热点阅读